python-文件读写

189 阅读2分钟

文件操作

1. 打开文件

1. 传统的文件操作

传统的文件操作的基本结构为:

file=open(path)
try:
    filecontent=file.read()
    print(filecontent)
finally:
    file.close()

该结构的问题在于,需要手动的去使用close方法关闭文件,比较麻烦且容易遗忘

2. with open(path) as file:

  1. 使用with结构进行文件读写的基本结构为:
with open(path) as file:
    filecontent=file.read()
    print(filecont)
  1. 使用with open() as的好处
    1. 自动关闭文件,不用再使用close()方法手动关闭文件
    2. 不用再手动使用try语句处理错误

3. 打开文件的模式

可以使用不同的模式打开文件,常见的文件的命令为:op[file_type]

  1. 基本的标识符
    • r:以读的形式打开文件
    • w:写文件
    • t:标识文件为文本文件,默认值
    • b:标识文件为二进制文件,而不是文本文件
    • +:可读可写
  2. 常见的命令
    • r:读入文本文件
    • rb:读入二进制文件,如图像等

2. 文件读写

1.[string] read(byte_count)

  1. 参数和返回值
  • [optional]byte_count:需要读入的字节数,以字节流的方式读入,默认是全部读入
  • return string:以字节流的方式返回读入的结果
  1. 一般用法
  • 读入指定数量的字节数
fo = open("foo.txt", "r+")
str = fo.read(10)
print(str)
  • 使用循环,读取文件
with open() as fp:
    head=True # 是否读入内容
    while head:
        head=fp.read(byte_count) # 读入指定数量的内容
        if not head:# 判断是否读完,如果读完,则跳出循环,停止读取
            break
        print(head) # 输出读取内容
  1. 原理分析

    read()函数会调用OS中文件指针,该标记当前读入的内容位置,下次使用read()则从当前读入的位置之后开始读入.详细内容看操作系统.

  2. 优缺点分析

    read()方法若不指定读入的字节数则会全部读入文件,很占用内存

2. List readlines()

一次读入多行文本,并将每行文本封装称为一个item,再返回List对象.

  1. 参数和返回值
    • return List<string> 返回一个字符串,字符串item=文件单行文本+换行符\n.因此要还原成原本的文本,需要使用字符串的strip()函数去除item结尾的换行符