文件操作
1. 打开文件
1. 传统的文件操作
传统的文件操作的基本结构为:
file=open(path)
try:
filecontent=file.read()
print(filecontent)
finally:
file.close()
该结构的问题在于,需要手动的去使用close方法关闭文件,比较麻烦且容易遗忘
2. with open(path) as file:
- 使用with结构进行文件读写的基本结构为:
with open(path) as file:
filecontent=file.read()
print(filecont)
- 使用with open() as的好处
- 自动关闭文件,不用再使用close()方法手动关闭文件
- 不用再手动使用try语句处理错误
3. 打开文件的模式
可以使用不同的模式打开文件,常见的文件的命令为:op[file_type]
- 基本的标识符
- r:以读的形式打开文件
- w:写文件
- t:标识文件为文本文件,默认值
- b:标识文件为二进制文件,而不是文本文件
- +:可读可写
- 常见的命令
- r:读入文本文件
- rb:读入二进制文件,如图像等
2. 文件读写
1.[string] read(byte_count)
- 参数和返回值
- [optional]byte_count:需要读入的字节数,以字节流的方式读入,默认是全部读入
- return string:以字节流的方式返回读入的结果
- 一般用法
- 读入指定数量的字节数
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) # 输出读取内容
-
原理分析
read()函数会调用OS中文件指针,该标记当前读入的内容位置,下次使用read()则从当前读入的位置之后开始读入.详细内容看操作系统.
-
优缺点分析
read()方法若不指定读入的字节数则会全部读入文件,很占用内存
2. List readlines()
一次读入多行文本,并将每行文本封装称为一个item,再返回List对象.
- 参数和返回值
- return List<string> 返回一个字符串,字符串
item=文件单行文本+换行符\n.因此要还原成原本的文本,需要使用字符串的strip()函数去除item结尾的换行符
- return List<string> 返回一个字符串,字符串