读文件(从文件中读取数据)
- 使用 with 语句从文件中读取数据可以确保在读取完成后自动关闭文件。
- 读取文本文件时,Python将其中的所有文本都解读为字符串。如果读取的是数字,并要将其作为数值使用,就必须就行类型转换。
- open()函数在默认情况下是在同目录下查找文件。它接受一个文件路径作为参数,可以是相对路径或绝对路径。如果只提供文件名,而不提供路径,则open()函数会在当前工作目录中搜索文件。如果文件路径包含目录信息,则open()函数将在指定的目录中查找文件。
filename = 'myfile.txt'
with open(filename) as f :
for line in f: #逐行读取
print(line)
在这个文件中,每行的末尾的都有一个看不见的换行符,而print语句也会加上一个换行符,因此每行末尾都有两个换行符。要消除多余的空白行,可以在print中使用rstrip()
使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表。
filename = 'pi_digits.txt'
with open(filename) as f:
lines = f.readlines() #从文件中读取每一行,并存储在一个列表中
for line in lines:
print(line.rstrip())
将文件读取到内存中后,就可以以任何方式使用这些数据了。
写文件(将内容写入文件中)
- 使用Python的内置函数open()来打开一个文件,并使用文件对象的write()方法来写入内容。
- 打开文件时,可指定读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’)或者能够读取和写入文件的模式(‘r+’)。如果省略了模式实参,Python将默认只读模式打开文件。
- 以’w’模式写入文件时,如果文件已存在,会覆盖原有文件中的所有内容。如果你想在已有文件的末尾追加内容,可以将"w"模式改为"a"模式。
- Python只能将字符串写入文本文件。要将数值数据存储找到文本文件中,必须先使用函数str()将其转换为字符串格式。
filename = 'programming.txt'
with open(filename,'w') as f: #打开文件,若文件不存在则创建新文件
f.write("I love programming.")
在上述示例中,调用open()时提供了两个实参。第一个实参时要打开的文件名称,第二个实参告诉Python要以写入模式打开此文件。函数write()不会在写入的文本末尾添加换行符,因此在必要时,需要在write()语句中添加换行符。