如何使用 Python 进行文件读写操作?

打印 上一主题 下一主题

主题 893|帖子 893|积分 2679

大家好,我是 V 哥。今天的内容来介绍 Python 中进行文件读写操作的方法,这在学习 Python 时是必不可少的技能点,渴望可以资助到正在学习 python的小同伴。
以下是 Python 中进行文件读写操作的基本方法:
一、文件读取
  1. # 打开文件
  2. with open('example.txt', 'r') as file:
  3.     # 读取文件的全部内容
  4.     content = file.read()
  5.     print(content)
  6.     # 将文件指针重置到文件开头
  7.     file.seek(0)
  8.     # 逐行读取文件内容
  9.     lines = file.readlines()
  10.     for line in lines:
  11.         print(line.strip())  # 去除行末的换行符
  12.     # 将文件指针重置到文件开头
  13.     file.seek(0)
  14.     # 逐行读取文件内容的另一种方式
  15.     for line in file:
  16.         print(line.strip())
复制代码
代码解释

  • open('example.txt', 'r'):以只读模式 r 打开名为 example.txt 的文件。
  • with 语句:确保文件在使用完毕后自动关闭,避免资源泄漏。
  • file.read():读取文件的全部内容。
  • file.seek(0):将文件指针重置到文件开头,以便重新读取。
  • file.readlines():将文件内容按行读取,并存储在一个列表中,每一行是列表的一个元素。
  • for line in file:逐行读取文件内容,file 对象是可迭代的,每次迭代返回一行。
二、文件写入
  1. # 打开文件进行写入
  2. with open('output.txt', 'w') as file:
  3.     # 写入内容
  4.     file.write("Hello, World!\n")
  5.     file.write("This is a new line.")
复制代码
代码解释

  • open('output.txt', 'w'):以写入模式 w 打开文件,如果文件不存在,会创建文件;如果文件存在,会清空原文件内容。
  • file.write():将指定内容写入文件,不会自动添加换行符,若需要换行,需手动添加 \n。
三、文件追加
  1. # 打开文件进行追加
  2. with open('output.txt', 'a') as file:
  3.     # 追加内容
  4.     file.write("\nThis is an appended line.")
复制代码
代码解释

  • open('output.txt', 'a'):以追加模式 a 打开文件,在文件末端添加新内容,不会覆盖原文件内容。
四、文件读写的二进制模式
  1. # 以二进制模式读取文件
  2. with open('example.bin', 'rb') as file:
  3.     binary_data = file.read()
  4.     print(binary_data)
  5. # 以二进制模式写入文件
  6. with open('output.bin', 'wb') as file:
  7.     binary_data = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64'  # 二进制数据
  8.     file.write(binary_data)
复制代码
代码解释

  • open('example.bin', 'rb'):以二进制只读模式 rb 打开文件。
  • open('output.bin', 'wb'):以二进制写入模式 wb 打开文件。
  • b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64':表现二进制数据,使用 b 前缀。
五、使用 json 模块读写 JSON 文件
  1. import json
  2. # 写入 JSON 数据
  3. data = {'name': 'John', 'age': 30, 'city': 'New York'}
  4. with open('data.json', 'w') as file:
  5.     json.dump(data, file)
  6. # 读取 JSON 数据
  7. with open('data.json', 'r') as file:
  8.     loaded_data = json.load(file)
  9.     print(loaded_data)
复制代码
代码解释

  • json.dump(data, file):将 Python 对象 data 序列化为 JSON 格式并写入文件。
  • json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。
六、使用 csv 模块读写 CSV 文件
  1. import csv
  2. # 写入 CSV 数据
  3. data = [['Name', 'Age', 'City'], ['John', 30, 'New York'], ['Jane', 25, 'Chicago']]
  4. with open('data.csv', 'w', newline='') as file:
  5.     writer = csv.writer(file)
  6.     writer.writerows(data)
  7. # 读取 CSV 数据
  8. with open('data.csv', 'r') as file:
  9.     reader = csv.reader(file)
  10.     for row in reader:
  11.         print(row)
复制代码
代码解释

  • csv.writer(file):创建一个 CSV 写入对象,将数据列表写入文件。
  • writer.writerows(data):将数据列表中的每一行写入文件。
  • csv.reader(file):创建一个 CSV 读取对象,逐行读取文件。
七、使用 pandas 模块读写文件(需要安装 pandas 库)
  1. import pandas as pd
  2. # 写入数据到 CSV 文件
  3. data = {'Name': ['John', 'Jane'], 'Age': [30, 25], 'City': ['New York', 'Chicago']}
  4. df = pd.DataFrame(data)
  5. df.to_csv('data_pandas.csv', index=False)
  6. # 读取 CSV 文件
  7. df_read = pd.read_csv('data_pandas.csv')
  8. print(df_read)
复制代码
代码解释

  • pd.DataFrame(data):将字典数据转换为 pandas 的 DataFrame 对象。
  • df.to_csv('data_pandas.csv', index=False):将 DataFrame 对象存储为 CSV 文件,不生存索引。
  • pd.read_csv('data_pandas.csv'):读取 CSV 文件为 DataFrame 对象。
八、使用 pickle 模块进行对象序列化和反序列化
  1. import pickle
  2. # 序列化对象
  3. data = {'name': 'John', 'age': 30, 'city': 'New York'}
  4. with open('data.pkl', 'wb') as file:
  5.     pickle.dump(data, file)
  6. # 反序列化对象
  7. with open('data.pkl', 'rb') as file:
  8.     loaded_data = pickle.load(file)
  9.     print(loaded_data)
复制代码
代码解释

  • pickle.dump(data, file):将 Python 对象 data 序列化为二进制数据并写入文件。
  • pickle.load(file):从文件中读取二进制数据并反序列化为 Python 对象。
以上是 Python 中进行文件读写操作的常用方法,你可以根据不同的文件类型和使用场景,选择合适的方法进行操作。
最后
根据文件类型和操作需求,可以机动使用内置的 open 函数及相关模块,如 json、csv、pandas 和 pickle 等,同时使用 with 语句确保文件的精确打开和关闭。你 Get 到了么,欢迎关注威哥爱编程,全栈路上我们并肩前行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

络腮胡菲菲

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表