天天看点

Python学习笔记(14)- 文件

要使用文本文件中的信息,首先需要将信息读取到内存中。为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。

  • 读取整个文件
with open('filename') as file_object: 
 contents = file_object.read() 
 print(contents)
           

相比于原始文件,该输出唯一不同的地方是末尾多了一个空行。为何会多出这个空行呢?因为read()到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删除多出来的空行,可在print语句中使用rstrip():

当然,上面的代码段是在打开指定文件夹下的文件,想要打开其他地方的文件就需要指定相应的文件路径,值得注意的是,linux和windows下的绝对路径的格式是不太相同的:

#linux下的绝对路径
file_path = '/home/ehmatthes/other_files/text_files/filename.txt' 
with open(file_path) as file_object:

#windows下的绝对路径
file_path = 'C:\Users\ehmatthes\other_files\text_files\filename.txt' 
with open(file_path) as file_object:
           
  • 逐行读取文件
with open(filename) as file:
    for line in file:
        print(line.rstrip())

with open(filenam) as file:
    lines = file.readLines()

for line in lines:
    print(line.rstrip())
           
  • 写入文件
#重写文件
with open(filename,'w') as file:
    file.write("XXX")

#续写文件
with open(filename,'a') as file:
    file.write("XXX")

#换行
file.write("xxx.\n")
           

打开文件时,可指定读取模式(’r’)、写入模式(’w’)、附加模式(’a’)或让你能够读取和写入文件的模式(’r+’)。如果打开文件时没有指定模式,系统默认的是只读模式。