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()}")
  • 文件读取方式建议
  1. 小文件 (<10MB): read() 或 readlines()
  2. 大文件 (>10MB): 使用文件迭代器 (for line in f)
  3. 超大文件 (>100MB): 分块读取 (read(size)) 或内存映射
  4. 需要随机访问: readlines() 或内存映射
  5. 流式处理: readline() 或迭代器

2、文件属性

  • mode='r' 只读【默认模式,文件必须存在,不存在则抛出异常】
  • mode='w' 只写,写之前会清空文件的内容,如果文件不存在,会创建新文件
  • mode='a' 追加方式,在原本内容中继续写,如果文件不存在,则会创建新文件
  • mode='r+' 可读可写
  • mode='w+' 打开一个文件用于读写,如果该文件存在则将其覆盖。如果该文件不存在,创建新文件
  • mode='a+' 打开一个文件用于读写,如果该文件存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
  • mode='b' rb、wb、ab、rb+、wb+、ab+意义和上面一样,用于二进制文件操作
posted @ 2025-12-26 15:18  jake瑞  阅读(1)  评论(0)    收藏  举报