Python文件读写与系统操作
文件基础操作:open 与 close
使用 open() 函数打开文件,需指定路径、访问模式及编码格式。该函数仅支持文件,不适用于目录。
操作完成后应调用 close() 方法释放资源,避免内存泄漏。
f = open(r'text.txt', 'r', encoding='utf-8')
f.close()
读取模式('r')与 read() 方法
以只读方式打开文件,read() 方法用于读取内容:
- 默认参数为 -1,表示读取全部内容。
- 传入数字如 3,则读取前 3 个字符。
f = open(r'test.txt', 'r', encoding='utf-8') # 假设内容为"我爱你中国"
print(f.read()) # 输出:我爱你中国
f.close()
写入模式('w')与 write()
以覆盖写入方式打开文件。若文件不存在则自动创建。
f = open(r'test.txt', 'w', encoding='utf-8')
f.write('你好') # 原内容被替换为"你好"
f.close()
追加模式('a')与 write()
在文件末尾追加内容,若文件不存在会自动创建。
f = open(r'test.txt', 'a', encoding='utf-8')
f.write('hello world!') # 内容变为"你好hello world!"
f.close()
二进制写入('wb')
用于处理非文本数据,如图片、音频或视频文件。
读写混合模式('r+')
支持读写操作,但不会创建新文件。指针位置决定读写起点。
写读混合模式('w+')
可创建新文件,同时支持读取和写入,指针控制操作位置。
seek():定位文件指针
将读写位置移动到指定字节偏移处:
- 参数 0 表示跳转至文件开头。
- 中文字符占 3 字节,英文/数字占 1 字节,空格也占 1 字节。
- 读取后若要写入,需先使用
seek()调整指针。
按行读取方法
readlines() 按行分割,返回包含每行字符串的列表。
lines = f.readlines() # 每行作为列表元素
readline() 逐行读取,每次调用返回一行内容。
first_line = f.readline()
os 模块常用功能
用于文件与目录管理。
重命名文件或目录
os.rename(src, dst)
src:原路径dst:目标路径
删除文件
os.remove(path)
创建目录
os.mkdir(dir_path)
删除空目录
os.rmdir(dir_path)
获取当前工作路径
current_dir = os.getcwd()
列出目录内容
files = os.listdir(path) # 返回文件名列表
获取绝对路径
abs_path = os.path.abspath(relative_path)
路径拼接
跨平台兼容地组合路径。
import os
path = os.path.join('.', 'file.txt')
print(path) # .\file.txt
判断文件是否存在
常用于安全创建文件前检查。
import os
file_path = r'.\data'
if not os.path.exists(file_path):
os.mkdir(file_path)
else:
print("目录已存在")
上下文管理器 with open
推荐使用 with open(),可在代码块退出时自动关闭文件,避免遗漏 close()。
with open('test.txt', 'r', encoding='utf-8') as file_handle:
content = file_handle.read()
print(content)