用Python讀寫文件的方法

2020-12-14 老齊教室

圖書推薦:《Python大學實用教程》

最適合零基礎入門讀物

在文中,我們將研習如何用Python讀取文件,然後,向文件寫入內容並再次保存它。使用Python讀寫某種特別類型的文件,例如:JSON、CSV、Excel等,一般會有專門的模塊。但是,在這裡,我們將用Python打開文本文件(.txt)。

若使用Python的open函數,它將返回一個文件對象,此對象將包含一些方法和屬性。我們可以使用這些方法和屬性獲得已打開文件的相關信息,並且,可以使用這些方法來更改所打開的文件。

用 open()讀取文件

在本節中,我們將學習如何使用open()函數在Python中加載文件,最簡單的例子是打開一個文件並創建一個文件對象。

當使用Python的open()函數打開一個文件時,有若干個參數可用。然而,最常用的參數只有前兩個。注意,第一個是強制性的,其餘的是可選的。如果不添加mode參數,文件將在Python中以只讀模式打開。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode參數

讀取文件有不同模式。如前所述,如果不帶有mode參數,文件就會以只讀方式打開,如下所示,列出了常用的幾種打開模式。

其中,mode='r'表示只讀;mode='w'表示只寫;mode='a'表示追加。mode='r+'表示可讀寫,但是文件必須存在,否則報錯。

一個簡單的示例

在下面的代碼示例中使用open()代開一個文件,此處假設文件與Python腳本在同一個目錄中,否則要增加路徑。

exfile = open('example_file')print(exfile)

在上圖中,很明顯我們有一個以只讀模式打開的文件對象,在open()中除了文件名之外沒有任何其他參數。因此,無法向該文件寫入任何內容。如果要列印文件名,只需鍵入print(exfile.name)。

創建文本文件並寫入內容

下面使用open()創建一個新文件。現在,要使用mode='w'參數,這樣能夠打開一個文件對象,並可以使用「文件對象寫入」方法。

exfile = open('example_file2', 'w')print(exfile)

在上圖中,可以當前文件對象是寫入模式(' w '),在下面的代碼塊中,我們將向這個文件中添加一行文本:

exfile.write('This is example file 2 \n')

當然,也可以添加更多的行:

exfile.write('Line number 2, in example file 2')exfile.close()

注意,在最後一行務必要使用close() 關閉文件。在下圖中,我們可以看到用Python創建的示例文件。

如何使用open()讀取Python中的文本文件

在下一個用Python讀取文件的示例中,我們將學習如何在Python中打開文本文件(.txt)。當然,這很簡單,我們基本上已經掌握了如何使用Python實現這一目的。也就是說,如果我們只想在Python中讀取.txt文件,我們可以使用open函數和read模式:

txtfile = open('example_file.txt')

read()示例

這個操作很簡單。現在,如果我們想列印文本文件的內容,可以有三個方法。第一個,使用文件對象的read()方法,讀取整個文件內容。也就是說,用txtfile.read()可以得到以下輸出:

第二個是用readlines()將文件讀取到列表中:

txtfile = open('example_file.txt') print(txtfile.readlines())

在這個方法中,還可以使用通過提供參數,說明讀取某些行。例如,下面的代碼將把前兩行讀入,然後將其列印出來:

txtfile = open('example_file.txt')line = txtfile.readlines(1)print(line)line2 = txtfile.readlines(2)print(line2)

最後一個方法,通過循環方式,把文件的內容逐行列印出來:

txtfile = open('example_file.txt')for line in txtfile: print(line)

寫入文件內容

在示例中,打開一個.txt文件,並向其中以追加的方式增加內容,故需要用'a'模式打開。

open('example_file2.txt', 'a')

接下來,使用write()向其追加內容。

txtfile.write('\n More text here.')

在添加文本時,至少在Windows 10中,必須在行前添加\n。否則,新的一行將添加到最後一個字符的後面(在文件的最後一行)。如果我們要添加更多的行,也必須記住這樣操作;

txtfile.write(『\nLast line of text, I promise.)txtfile.close()

可以使用文本編輯器(例如,Notepad, Gedit)打開文本文件,會看到添加的最後兩行:

使用with語句

使用with語句打開文件是一個非常好的習慣,這樣就不必記住關閉文件,並且使用with語句的語法清晰易讀:

with open('example_file2.txt') as txtfile2: print(txtfile2.read())

現在,如果我們使用read()方法,Python會拋出ValueError:

txtfile2.read()

分詞和統計

在讀取文件後,可以使用字符串的split()方法將文本文件中的句子分割成單詞,然後用collections模塊中的Counter類來統計打開的文件中的單詞數量。

from collections import Counterwith open('example_file2.txt') as txtfile2: wordcount = Counter(txtfile2.read().split())print(len(wordcount))# Output: 43

現在,Counter類返回了一個字典,該字典包含所有單詞和每個單詞出現的次數。因此,可以這樣來列印所有單詞和單詞總數:

for k in sorted(wordcount, key=wordcount.get, reverse=True): print(k, wordcount[k])

在上面的代碼示例中,我們循環遍歷字典中的鍵並對它們進行排序。這樣,就把最常見的詞排在最上面。當然,如果用Python讀取包含多個單詞的文件、並像這樣列印結果,這種操作就是不可行的。

以上介紹了以不同的模式讀取文件、創建和寫入文件、將數據追加到文件的方法,以及如何使用with語句讀取文件。

相關焦點

  • python讀寫文件
    今天我們就以這幾個需求為背景來看看python是如何讀寫文件的。基本概念介紹我們知道python中一切都是對象,「文件」也不例外。下面的實驗可以看出文件是名叫『_io.TextIOWrapper』的class。
  • python使用with as處理文件的讀寫
    文件處理的兩種情況:1、忘記關閉文件。2、文件讀寫異常,未做處理。在python中使用with語句,可以自動調用close()方法,同時也解決了異常問題。with open('test.txt','w') as f:f.write('Hello, python!')
  • n種方式教你用python讀寫excel等數據文件
    下面整理下python有哪些方式可以讀寫數據文件。1. read、readline、readlinesread()  :一次性讀取整個文件內容。推薦使用read(size)方法,size越大運行時間越長readline()  :每次讀取一行內容。
  • 文科生快速入門python(十三) | 文件讀寫詳解
    除了之外【python辦公自動化(一) | chardet庫自動讀寫多編碼格式的文件】中描述的編碼錯誤外,還有忘記close()造成讀不到文件、搞混r,w,a,x模式、寫錯read, readline, readlines方法之類的常見錯誤。
  • n種方式教你用Python讀寫Excel等數據文件
    下面整理下python有哪些方式可以讀寫數據文件。1. read、readline、readlinesread()  :一次性讀取整個文件內容。推薦使用read(size)方法,size越大運行時間越長readline()  :每次讀取一行內容。
  • python文件讀寫的基本操作
    創建一個文件使用電腦創建一個文件非常簡單,滑鼠右鍵新建就可以搞定,用程序創建也非常簡單,下面一行代碼就搞定。>f.close()解釋:讀寫和打開文件操作很相似,主要區別就是open後面的w改成r讀模式了,默認就是r,所以這個可寫可不寫,讀取內容方法使用read(),讀取成功後返回內容字符串。
  • 怎樣用python讀寫h5文件
    H5文件全稱是Hierarchical Data Format,可以存儲不同類型的圖像和數碼數據的文件格式,是一種常用的數據存儲格式。python中用於讀寫H5文件的包是h5py。下面簡要介紹其操作:讀取:import h5pypath = 'Data/irt_PROSIT.hdf5' # 這裡是h5文件的存儲路徑f = h5py.File(path, 'r')查看該文件包含的那些數據
  • Python文件讀寫方法
    文件的操作方法文件只讀只讀模式r: 以只讀方式打開文件。文件的指針將會放在文件的開頭。rb: 以二進位格式打開一個文件進行只讀。讀寫模式r+ : 打開一個文件進行讀寫。指針將會放在文件的開頭。r+b: 以二進位格式打開一個文件進行讀寫。指針將會放在文件的開頭。一般進行非文本文件的讀寫。
  • 談一談 Python 文件讀寫的細節
    1.文件讀寫的流程1)類比windows中手動操作txt文檔,說明python中如何操作txt文件?① windows中手動操作txt文件的步驟② python操作txt文件的步驟獲取被打開的文件的內存對象,該內存對象又叫做文件句柄通過這個內存對象(文件句柄),來對文件進行操作(讀取,寫入等操作)2)什麼是文件的內存對象(文件句柄)?
  • python讀寫json文件
    fastp軟體產生的json輸出結果,最外圍是一個字典,而字典的值既可以是基本的數據類型,比如數值,字符串,又可以是列表,字典等數據結構,相互嵌套,就構成了整個json文件。對於json文件的讀寫,也稱之為json的編碼和解碼。所謂解碼,就是將文字格式的json轉換為程式語言中的對象,編碼則相反,將程式語言中的對象轉換為json格式的字符串。
  • 如何使用Python 和 Pandas讀寫JSON文件
    在這篇文章中,我們將學習如何使用Python讀寫JSON文件。在第一部分中,我們將使用Python包json來創建一個JSON文件並寫入一個JSON文件。Python字典保存到JSON文件中在Python中,有一個模塊json允許我們對一個JSON文件內容進行讀寫。該模塊會將JSON格式轉換為Python的內部數據結構格式。
  • Python讀寫文件open的使用解讀
    文件打開 open()和操作方法python 讀取文件自帶方法 open,適用於可以用記事本 txt 格式打開的文件,都可以用 open 方法打開2   python 打開文件>兩種方式的區別是第一種打開方式需要跟上 close()方法關閉文件,第二種打開方式不需要跟上 close()方法關閉文件,文件可以安全退出
  • 從0開始學python-6.2 用python讀寫文件
    上節課我們學習了什麼文件系統,文件樹的組成結構是什麼樣的。我們還學習了用python來查找、重命名一個文件。這節課,我們一起學習一下怎麼用python操作一個文件的內容。文件操作對一個文件,我們可以1)讀取裡面的內容、2)往文件裡寫內容、3)追加文件內容。我們來看看用python怎麼做這些事情。打開文件在對文件內容操作之前,我們首先要打開文件。我們可以使用open函數打開文件,看代碼:file = open('.
  • Python入門 - 如何在Python中讀寫文件
    任何文件在讀寫之前都需要打開。大多數程式語言都使用open()方法來打開文件,以便使用文件對象(file object)讀寫。可以使用不同類型的文件訪問模式作為open()方法的參數,以說明打開文件的目的。這個參數是可選的。close()方法用於在完成文件操作後釋放文件對象佔用的資源。Python編程可以處理兩種類型的文件。它們是文本文件和二進位文件。
  • python3之如何讀寫文件
    文件的讀寫是在實際開發中經常會遇到的,因此掌握文件的讀寫是必須的。讀文件首先通過一個最簡單的例子感受一下python讀文件的函數。例子中只有兩行代碼,第一行代碼是調用open函數,參數是文件路徑,返回的是一個文件對象。第二行代碼是使用print列印文件對象讀取的內容。可以看出python讀文件的操作很簡單,打開文件(open)、讀取文件(file.read)。當然用完文件應該關閉文件,調用file的close函數即可。
  • 一文看懂Python對文件和文件夾的操作: 含os, shutil和glob模塊.Python學習面試必讀.
    屬性描述file.closed返回true如果文件已被關閉,否則返回false。file.mode返回被打開文件的訪問模式。file.name返回文件的名稱。file.softspace如果用print輸出後,必須跟一個空格符,則返回false。否則返回true。閱讀文件閱讀文件,你可以用file對象自帶的read方法。
  • Python基礎教程——文件讀寫
    文件讀寫是我們最常見的一個需求,而且,更多的時候,我們是讀寫文本文本,直接讀寫二進位文件是很少見的。計算機文件今天,本文遵照以前的做法,拋開各種複雜的理論和API講解,直接按需求列方法。去掉換行符按行遍歷文件還有一種方法:
  • python教程實戰,json、csv等讀寫
    python教程實戰,json、csv等讀寫JSON的全稱是」JavaScript Object Notation」,意思是JavaScript
  • Python學習第52課-寫入文件
    【每天幾分鐘,從零入門python編程的世界!】Python操作外部文件的數據,既然有讀取,就會有寫入。我們現在學習用Python寫入文件。●寫入文件文件寫入和文件讀取具有相似的步驟,即打開文件--讀取/寫入文件--關閉文件,對應open()--read()/write()--close()方法。write()方法描述:write() 方法用於向文件中寫入指定字符串。
  • 14-用Python 讀寫 Excel 文件
    最大支持行數為1048576行),人們開始轉向python和R這樣的分析工具了XlsxWriterxlrd&xlwt[2]OpenPyXL[3]Microsoft Excel API[4]介紹可以創建 Excel 2007 或更高版本的 XLSX 文件即 python-excel,含 xlrd、xlwt 和 xlutils 三大模塊,分別提供讀、寫和其他功能可以讀寫 Excel