写点什么

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

作者:威哥爱编程
  • 2025-01-21
    北京
  • 本文字数:2206 字

    阅读完需:约 7 分钟

大家好,我是 V 哥。今天的内容来介绍 Python 中进行文件读写操作的方法,这在学习 Python 时是必不可少的技术点,希望可以帮助到正在学习 python 的小伙伴。


以下是 Python 中进行文件读写操作的基本方法:


一、文件读取


# 打开文件with open('example.txt', 'r') as file:    # 读取文件的全部内容    content = file.read()    print(content)
# 将文件指针重置到文件开头 file.seek(0) # 逐行读取文件内容 lines = file.readlines() for line in lines: print(line.strip()) # 去除行末的换行符
# 将文件指针重置到文件开头 file.seek(0) # 逐行读取文件内容的另一种方式 for line in file: print(line.strip())
复制代码


代码解释


  • open('example.txt', 'r'):以只读模式 r 打开名为 example.txt 的文件。

  • with 语句:确保文件在使用完毕后自动关闭,避免资源泄漏。

  • file.read():读取文件的全部内容。

  • file.seek(0):将文件指针重置到文件开头,以便重新读取。

  • file.readlines():将文件内容按行读取,并存储在一个列表中,每一行是列表的一个元素。

  • for line in file:逐行读取文件内容,file 对象是可迭代的,每次迭代返回一行。


二、文件写入


# 打开文件进行写入with open('output.txt', 'w') as file:    # 写入内容    file.write("Hello, World!\n")    file.write("This is a new line.")
复制代码


代码解释


  • open('output.txt', 'w'):以写入模式 w 打开文件,如果文件不存在,会创建文件;如果文件存在,会清空原文件内容。

  • file.write():将指定内容写入文件,不会自动添加换行符,若需要换行,需手动添加 \n


三、文件追加


# 打开文件进行追加with open('output.txt', 'a') as file:    # 追加内容    file.write("\nThis is an appended line.")
复制代码


代码解释


  • open('output.txt', 'a'):以追加模式 a 打开文件,在文件末尾添加新内容,不会覆盖原文件内容。


四、文件读写的二进制模式


# 以二进制模式读取文件with open('example.bin', 'rb') as file:    binary_data = file.read()    print(binary_data)
# 以二进制模式写入文件with open('output.bin', 'wb') as file: binary_data = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64' # 二进制数据 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 文件


import json
# 写入 JSON 数据data = {'name': 'John', 'age': 30, 'city': 'New York'}with open('data.json', 'w') as file: json.dump(data, file)
# 读取 JSON 数据with open('data.json', 'r') as file: loaded_data = json.load(file) print(loaded_data)
复制代码


代码解释


  • json.dump(data, file):将 Python 对象 data 序列化为 JSON 格式并写入文件。

  • json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。


六、使用 csv 模块读写 CSV 文件


import csv
# 写入 CSV 数据data = [['Name', 'Age', 'City'], ['John', 30, 'New York'], ['Jane', 25, 'Chicago']]with open('data.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data)
# 读取 CSV 数据with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row)
复制代码


代码解释


  • csv.writer(file):创建一个 CSV 写入对象,将数据列表写入文件。

  • writer.writerows(data):将数据列表中的每一行写入文件。

  • csv.reader(file):创建一个 CSV 读取对象,逐行读取文件。


七、使用 pandas 模块读写文件(需要安装 pandas 库)


import pandas as pd
# 写入数据到 CSV 文件data = {'Name': ['John', 'Jane'], 'Age': [30, 25], 'City': ['New York', 'Chicago']}df = pd.DataFrame(data)df.to_csv('data_pandas.csv', index=False)
# 读取 CSV 文件df_read = pd.read_csv('data_pandas.csv')print(df_read)
复制代码


代码解释


  • pd.DataFrame(data):将字典数据转换为 pandasDataFrame 对象。

  • df.to_csv('data_pandas.csv', index=False):将 DataFrame 对象存储为 CSV 文件,不保存索引。

  • pd.read_csv('data_pandas.csv'):读取 CSV 文件为 DataFrame 对象。


八、使用 pickle 模块进行对象序列化和反序列化


import pickle
# 序列化对象data = {'name': 'John', 'age': 30, 'city': 'New York'}with open('data.pkl', 'wb') as file: pickle.dump(data, file)
# 反序列化对象with open('data.pkl', 'rb') as file: loaded_data = pickle.load(file) print(loaded_data)
复制代码


代码解释


  • pickle.dump(data, file):将 Python 对象 data 序列化为二进制数据并写入文件。

  • pickle.load(file):从文件中读取二进制数据并反序列化为 Python 对象。


以上是 Python 中进行文件读写操作的常用方法,你可以根据不同的文件类型和使用场景,选择合适的方法进行操作。


最后


根据文件类型和操作需求,可以灵活使用内置的 open 函数及相关模块,如 json、csv、pandas 和 pickle 等,同时利用 with 语句确保文件的正确打开和关闭。你 Get 到了么,欢迎关注威哥爱编程,全栈路上我们并肩前行。

发布于: 刚刚阅读数: 3
用户头像

华为 HDE、CSDN 博客专家、Java畅销书作者 2018-05-30 加入

全栈领域优质创作者(Java/HarmonyOS/AI),公众号:威哥爱编程

评论

发布
暂无评论
如何使用 Python 进行文件读写操作?_Python_威哥爱编程_InfoQ写作社区