python笔记-文件
1、文件读取
- 相对路径打开文件
f = open('test.txt',mode='r',encoding='utf-8')
f = open('../第9章/test2.txt','r',encoding='utf-8')
f = open('../test3.txt','r',encoding='utf-8') - 第一个参数是文件路径及文件名称(与py程序在一个目录下不需要写路径)
- 第二个参数是文件属性,默认是只读属性
- 第三个参数是文件编码方式,根据自己的需求设置
- 绝对路径打开文件
点击查看代码
import os
path = os.getcwd()
file_path = path + '/test.txt'
f = open(file_path,mode='r',encoding='utf-8')
- 读取文件
- 全部读取文件
context = f.read() - 按行读取文件
点击查看代码
with open('file.txt', 'r') as f:
line1 = f.readline() # 读取第一行
line2 = f.readline() # 读取第二行
# 每次调用读取下一行
- 一次性读取所有行数据,返回列表
点击查看代码
# 一次性读取所有行,返回列表
with open('file.txt', 'r') as f:
all_lines = f.readlines() # 读取全部内容
- 文件迭代器读取文件
点击查看代码
with open('test.txt',mode='r',encoding='utf-8') as f:
for line in f:#逐行迭代,不一次性加载内存
#自行处理每行的(换行\n)
prcess_line = line.strip()
print(prcess_line)
- 带行号读取文件
点击查看代码
with open('test.txt',mode='r',encoding='utf-8') as f:
for line_num,line in enumerate(f,1):
print(f"第{line_num}行:{line.strip()}")
- 文件读取方式建议
- 小文件 (<10MB): read() 或 readlines()
- 大文件 (>10MB): 使用文件迭代器 (for line in f)
- 超大文件 (>100MB): 分块读取 (read(size)) 或内存映射
- 需要随机访问: readlines() 或内存映射
- 流式处理: readline() 或迭代器
2、文件属性
- mode='r' 只读【默认模式,文件必须存在,不存在则抛出异常】
- mode='w' 只写,写之前会清空文件的内容,如果文件不存在,会创建新文件
- mode='a' 追加方式,在原本内容中继续写,如果文件不存在,则会创建新文件
- mode='r+' 可读可写
- mode='w+' 打开一个文件用于读写,如果该文件存在则将其覆盖。如果该文件不存在,创建新文件
- mode='a+' 打开一个文件用于读写,如果该文件存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
- mode='b' rb、wb、ab、rb+、wb+、ab+意义和上面一样,用于二进制文件操作

浙公网安备 33010602011771号