一.文件读取操作
1. 读取整个文件
在同级目录,创建一个pi_digits.txt文件和file_reader.py文件。
pi_digits.txt文件中加入内容
file_reader.py文件内容如下:
with open('pi_digits.txt') as file_object: contents=file_object.read() print(contents)
open()函数打开文件,接收一个参数:要打开的文件的名称,当前运行的是file_reader.py,因此python在file_reader.py所在的目录中查找pi_digits.txt。open()函数返回一个表示文件的对象赋值给file_object。
with关键字是指:不需需要访问文件后将其关闭。不推荐调用close来关闭文件,因为如果程序存在bug导致方法导致close()未执行,文件将不会关闭,导致数据丢失或受损。
read()方法读取这个文件的全部内容,并将其作为一个长字符串赋值给变量contents。
2. 文件路径
上面是同级目录读取文件,如果不在同级目录,那么需要指定相对路径或绝对路径。在python程序中,路径使用斜杠( / )
当file_reader.py文件与files文件同级时,运行ile_reader.py,读取代码如下
with open('files/pi_digits.txt') as file_object: contents=file_object.read() print(contents)
3.逐行读取
读取文件时,常需要检查其中的每一行 ,可对文件对象使用for循环
with open('files/pi_digits.txt') as file_object: for line in file_object: print(line)
为什么会出现空白行呢? 因为在这个文件中,每行的末尾都有一个看不见的换行符,而函数调用print()也会加上一个换行符,因此每行末尾都有两个换行符。
可加上rstrip()去掉空白行
with open('files/pi_digits.txt') as file_object: for line in file_object: print(line.rstrip())
4.读取所有内容到变量中,退出with后在做逻辑
with open('files/pi_digits.txt') as file_object: lines=file_object.readlines() for line in lines: print(line.rstrip())
注意:读取文本文件时,Python将其中的所有文本都解读为字符串。如果读取的是数,并要将其作为数值使用,就必须使用函数int()将其转换为整数或使用函数float()将其转换为浮点数。
二.文件写入操作
1.创建文件并写入
filename='files/programming.txt' with open(filename,'w') as file_object: file_object.write('python')
调用open时提供了两个参数,第二个参数 w 是写入模式,如果省略了第二个参数,默认就是只读模式 r。
r 读取模式
w 写入模式 (不存在时,自动创建文件)
a 追加模式(不存在时,自动创建文件)
r+ 读写模式
注意: 使用 w 写入模式时一定要小心,如果文件已存在,将会清空文件原有内容。
write写入,是不换行的。都挤在第一行。如果要换行,可以加\n
filename='files/programming.txt' with open(filename,'w') as file_object: file_object.write('python\n') file_object.write('asp.net core\n')
2.追加内容到文件
filename='files/programming.txt' with open(filename,'a') as file_object: file_object.write('java\n') file_object.write('php\n')
使用a 追加模式,将内容添加到文件末尾,如果文件不存在,将自动创建一个文件。
标签:11,文件,读取,python,object,file,txt,open From: https://www.cnblogs.com/MrHSR/p/16547768.html