要使用文本檔案中的資訊,首先需要将資訊讀取到記憶體中。為此,你可以一次性讀取檔案的全部内容,也可以以每次一行的方式逐漸讀取。
- 讀取整個檔案
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+’)。如果打開檔案時沒有指定模式,系統預設的是隻讀模式。