摘要:File = open(filename, mode='r', encoding='utf-8')
以下是一份详细的 Python 基础文件操作指南,包含常见操作和示例代码:
一、文件操作基本流程
打开文件 → 2. 操作文件 → 3. 关闭文件二、打开文件
使用 open 函数:
python
复制
File = open(filename, mode='r', encoding='utf-8')
文件模式表
描述r只读(默认模式)w写入(覆盖原有内容,文件不存在则创建)a追加(在文件末尾添加内容)x创建新文件并写入(文件已存在则报错)b二进制模式(例如 rb 或 wb)+读写模式(例如 r+ 或 w+)三、读取文件内容
1. 读取全部内容
python
with open('test.txt', 'r', encoding='utf-8') as f:
content = f.read
print(content)
2. 逐行读取
python
with open('test.txt', 'r') as f:
for line in f:
print(line.strip) # 去除换行符
3. 读取指定字节数
python
with open('test.txt', 'r') as f:
chunk = f.read(100) # 读取前100个字符
4. 读取所有行到列表
python
with open('test.txt', 'r') as f:
lines = f.readlines # 返回列表,每行作为一个元素
四、写入文件
1. 写入字符串
python
with open('output.txt', 'w', encoding='utf-8') as f:
f.write("Hello, World!\n")
f.write("第二行内容")
2. 写入多行(列表)
python
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open('output.txt', 'w') as f:
f.writelines(lines)
3. 追加内容
python
with open('output.txt', 'a') as f:
f.write("追加的内容\n")
五、文件指针操作
1. 获取当前指针位置
python
position = f.tell
2. 移动文件指针
python
f.seek(offset, whence)
offset: 偏移量(字节)whence: 参考位置(0: 文件头,1: 当前位置,2: 文件尾)示例:
python
with open('test.txt', 'r') as f:
f.seek(10) # 移动到第10字节
print(f.read(5)) # 读取接下来5个字符
六、关闭文件
方法1:手动关闭
python
f = open('test.txt', 'r')
# ...操作文件...
f.close # 必须显式关闭
方法2:自动关闭(推荐)
使用 with 语句会在代码块结束后自动关闭文件:
python
with open('test.txt', 'r') as f:
# ...操作文件...
# 此处文件已自动关闭
七、异常处理
python
try:
with open('test.txt', 'r') as f:
content = f.read
except FileNotFoundError:
print("文件不存在!")
except IOError:
print("读写错误!")
finally:
print("操作结束")
八、二进制文件操作
适用于图片、视频等非文本文件:
python
# 读取二进制文件
with open('image.jpg', 'rb') as f:
data = f.read
# 写入二进制文件
with open('copy.jpg', 'wb') as f:
f.write(data)
九、常用文件操作函数
1. 检查文件/目录是否存在
python
import os
exists = os.path.exists('test.txt')
2. 删除文件
python
import os
os.remove('test.txt')
3. 重命名文件
python
import os
os.rename('old.txt', 'new.txt')
4. 获取文件大小
python
import os
size = os.path.getsize('test.txt')
十、综合示例
复制文件内容:
python
with open('source.txt', 'r') as src, open('dest.txt', 'w') as dst:
for line in src:
dst.write(line)
使用 with 语句可避免忘记关闭文件写入模式 w 会覆盖原文件内容操作二进制文件时务必使用 b 模式文件路径需注意跨平台兼容性(Windows 使用 \,Linux/macOS 使用 /)来源:老客数据一点号