Python文件操作核心是掌握open()函数模式参数及with语句;'r'只读、'w'清空写、'a'追加、'r+'读写、'b'二进制;推荐with自动关闭,避免资源泄漏。

Python文件操作的核心是掌握open()函数的用法和文件对象的常用方法。关键不在记住所有参数,而在于理解模式(mode)如何决定读写行为、何时需要手动关闭、以及为什么推荐用with语句。
打开文件的模式要选对
模式字符串控制文件以什么方式打开,最常用的是:
- 'r':只读,默认值,文件不存在会报错
- 'w':只写,自动清空原内容;文件不存在则新建
- 'a':追加写,在文件末尾添加内容,不会覆盖原有数据
- 'r+':可读可写,但写入时从开头覆盖,不自动换行
-
'b':二进制模式,常和其它模式连用,如
'rb'、'wb'
文本模式下默认使用系统编码(通常是UTF-8),若处理中文建议显式指定encoding='utf-8',避免乱码。
读取文件内容的几种方式
读取方法的选择取决于数据大小和使用场景:
立即学习“Python免费学习笔记(深入)”;
Perl 基础入门中文教程,chm格式,讲述PERL概述、简单变量、操作符、列表和数组变量、文件读写、模式匹配、控制结构、子程序、关联数组/哈希表、格式化输出、文件系统、引用、面向对象、包和模块等知识点。适合初学者阅读和了解Perl脚本语言。
- .read():一次性读取全部内容为字符串,适合小文件
- .readline():每次读一行,返回含换行符的字符串,适合逐行处理日志等流式数据
- .readlines():返回每行作为元素的列表,保留换行符,注意内存占用
- 直接遍历文件对象:
for line in f:,内存友好,推荐用于大文件
示例:with open('data.txt', 'r', encoding='utf-8') as f:
for line in f:
print(line.strip()) # strip()去掉换行符和空格
写入内容要注意换行和编码
写入操作不会自动加换行符,需手动添加'\n':
- .write(string):写入字符串,返回写入字符数
- .writelines(list):写入字符串列表,每个元素必须是字符串,不自动加换行
常见错误:用writelines(['a', 'b', 'c'])结果是'abc',不是三行。正确写法是['a\n', 'b\n', 'c\n']或循环调用write()并加\n。
用with语句管理文件更安全
不用with就得手动调用.close(),一旦出错可能漏关,导致资源占用或写入失败:
-
with open(...)会在代码块结束时自动关闭文件,无论是否异常 - 即使中间发生
ValueError或KeyboardInterrupt,文件仍能正常关闭 - 这是Python官方推荐的标准做法,简洁且健壮
不推荐:f = open('test.txt', 'w')
f.write('hello')
f.close() # 如果write出错,close就不会执行









