天天看點

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+’)。如果打開檔案時沒有指定模式,系統預設的是隻讀模式。