Python通过open()函数处理文件,推荐使用with语句确保文件安全关闭。1. 用’r’、’w’、’a’等模式打开文件,配合encoding=’utf-8’避免中文乱码;2. 可逐行读取节省内存,或写入/追加内容;3. 处理CSV用csv模块,JSON用json模块;4. 使用pathlib管理路径并结合异常处理提升程序健壮性。

Python处理文件主要通过内置的open()函数来实现,可以对文本或二进制文件进行读取、写入、追加等操作。关键在于正确选择打开模式,并养成使用上下文管理器(with语句)的好习惯,确保文件安全关闭。
1. 打开和读取文件
使用open()函数打开文件时,需要指定文件路径和操作模式。最常用的模式是:
‘r’:只读模式(默认)‘w’:写入模式(会覆盖原内容)‘a’:追加模式‘b’:以二进制方式打开(如’rb’或’wb’)
推荐使用with语句打开文件,这样即使发生异常也能自动关闭文件:
with open('example.txt', 'r', encoding='utf-8') as f: content = f.read() # 读取全部内容 print(content)
也可以逐行读取,节省内存:
立即学习“Python免费学习笔记(深入)”;
with open('example.txt', 'r', encoding='utf-8') as f: for line in f: print(line.strip()) # 去除换行符
2. 写入和追加内容
写入文件时,使用'w'模式会清空原文件,而'a'模式会在末尾添加新内容:
# 覆盖写入with open('output.txt', 'w', encoding='utf-8') as f: f.write("这是第一行n") f.write("这是第二行n")追加内容
with open('output.txt', 'a', encoding='utf-8') as f:f.write("这是追加的一行n")
3. 处理CSV和JSON文件
对于结构化数据,Python提供了专门的模块:
CSV文件:
import csv写入CSV
with open('data.csv', 'w', newline='', encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['姓名', '年龄'])writer.writerow(['张三', 25])
读取CSV
with open('data.csv', 'r', encoding='utf-8') as f:reader = csv.reader(f)for row in reader:print(row)
JSON文件:
import json写入JSON
data = {'name': '李四', 'age': 30}with open('data.json', 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=2)
读取JSON
with open('data.json', 'r', encoding='utf-8') as f:data = json.load(f)print(data)
4. 文件路径与异常处理
建议使用os.path或pathlib处理文件路径,增强兼容性:
from pathlib import Pathfile_path = Path('folder') / 'example.txt'if file_path.exists():with open(file_path, 'r', encoding='utf-8') as f:print(f.read())else:print("文件不存在")
加上异常处理更安全:
try: with open('example.txt', 'r', encoding='utf-8') as f: content = f.read()except FileNotFoundError: print("文件未找到")except PermissionError: print("没有权限访问该文件")
基本上就这些。掌握好with语句、编码设置和常用格式的处理方法,就能应对大多数文件操作需求了。不复杂但容易忽略细节,比如忘记指定encoding='utf-8'可能导致中文乱码。
以上就是python如何处理文件的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1374770.html
微信扫一扫
支付宝扫一扫