Python學習筆記之文件的讀寫操作實例分析

這篇文章主要介紹了Python學習筆記之文件的讀寫操作,結合實例形式詳細分析了Python常見的文件讀寫操作實現技巧及相關注意事項,需要的朋友可以參考下
本文實例講述了Python文件的讀寫操作。分享給大家供大家參考,具體如下:

讀寫文件

讀取文件

f = open('my_path/my_file.txt', 'r') # open方法會返回文件對象
file_data = f.read() # 通過read方法獲取數據
f.close() # 關閉該文件

首先使用內置函數 open 打開文件。需要文件路徑字符串。open 函數會返回文件對象,它是一個 Python 對象,Python 通過該對象與文件本身交互。在此示例中,我們將此對象賦值給變量 f。
你可以在 open 函數中指定可選參數。參數之一是打開文件時採用的模式。在此示例中,我們使用 r,即只讀模式。這實際上是模式參數的默認值。
使用 read 訪問文件對象的內容。該 read 方法會接受文件中包含的文本並放入字符串中。在此示例中,我們將該方法返回的字符串賦值給變量 file_data。
當我們處理完文件後,使用 close 方法釋放該文件佔用的系統資源。
寫入文件

f = open('my_path/my_file.txt', 'w')
f.write("Hello there!")
f.close()

以寫入 (‘w’) 模式打開文件。如果文件不存在,Python 將爲你創建一個文件。如果以寫入模式打開現有文件,該文件中之前包含的所有內容將被刪除。如果你打算向現有文件添加內容,但是不刪除其中的內容,可以使用附加 (‘a’) 模式,而不是寫入模式。
使用 write 方法向文件中添加文本。
操作完畢後,關閉文件。
with語法,該語法會在你使用完文件後自動關閉該文件

with open('my_path/my_file.txt', 'r') as f:
file_data = f.read()

該 with 關鍵字使你能夠打開文件,對文件執行操作,並在縮進代碼(在此示例中是讀取文件)執行之後自動關閉文件。現在,我們不需要調用 f.close() 了!
只能在此縮進塊中訪問文件對象 f。
在之前的代碼中,f.read() 調用沒有傳入參數。它自動變成從當前位置讀取文件的所有剩餘內容,即整個文件。如果向 .read() 傳入整型參數,它將讀取長度是這麼多字符的內容,輸出所有內容,並使 ‘window’ 保持在該位置以準備繼續讀取。

with open(camelot.txt) as song:
  print(song.read(2))
  print(song.read(8))
  print(song.read())

輸出:

We
're the
knights of the round table
We dance whenever we’re able

讀取文件下一行的方法: f.readlines()

Python 將使用語法 for line in file 循環訪問文件中的各行內容。 我可以使用該語法創建列表中的行列表。因爲每行依然包含換行符,因此我使用 .strip() 刪掉換行符。

camelot_lines = []
with open("camelot.txt") as f:
  for line in f:
    camelot_lines.append(line.strip())
print(camelot_lines) # ["We're the knights of the round table", "We dance whenever we're able"]

相關練習:你將創建一個演員名單,列出參演電視劇《巨蟒劇團之飛翔的馬戲團》的演員。寫一個叫做 create_cast_list 的函數,該函數會接受文件名作爲輸入,並返回演員姓名列表。 它將運行文件 flying_circus_cast.txt。文件的每行包含演員姓名、逗號,以及關於節目角色的一些(凌亂)信息。你只需提取姓名,並添加到列表中。你可以使用 .split() 方法處理每行。

解決方案:

def create_cast_list(filename):
  cast_list = []
  #use with to open the file filename
  #use the for loop syntax to process each line
  #and add the actor name to cast_list
  with open(filename) as f:
  # use the for loop syntax to process each line    
  # and add the actor name to cast_list
    for line in f:
      line_data = line.split(',')
      cast_list.append(line_data[0])
  return cast_list
cast_list = create_cast_list('./txts/flying_circus_cast.txt')
for actor in cast_list:
  print(actor)

推薦我們的python學習基地,看前輩們是如何學習的!從基礎的python腳本、爬蟲、django、數據挖掘等編程技術,還有整理零基礎到項目實戰的資料,送給每一位愛學習python的小夥伴!每天都有老前輩定時講解Python技術,分享一些學習的方法和需要留意的小細節,點擊加入我們的 python學習者聚集地

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章