- 1、python操作文本文件
- 2、python 讀取txt文件多少行
- 3、python如何指定寫入內容的行數,以及如何讀取指定行數(已知)?
- 4、如何用python讀取文本中指定行的內容
- 5、python怎樣讀取txt文件的數據內容
在磁盤上讀寫文件之前,必須先打開這個文件。打開文件就需要提供文件的路徑。
在與Python程序同一個目錄下,我們有一個名為 pi.txt 的文件,它的內容如下:
現在使用Python來打開和關閉它:
執行此程序不會有任何輸出,這表示着打開和關閉文件都得到了正確執行。
可以看到,使用 open() 函數打開文件,參數為文件名(或文件路徑);該函數會返回一個文件句柄,文件句柄並不會實際保存文件的內容,而是代表着一種操作,在上面的例子中,文件句柄被賦值給變量 fhand 。
打開文件後,程序具有讀(默認)該文件的權限。
最後,使用文件句柄的 close() 方法關閉文件。這非常重要,因為使用完而沒有關閉的文件會佔用內存或造成安全問題。
如果Python找不到該文件,則會返回錯誤,比如下面這樣:
Python提示我們沒有相應的文件或者目錄: ‘pii.txt’。
打開文件後就可以對文件進行操作:
fhand.read() 方法將文件內容作為一個字符串返回。
文件中的每一行末尾使用換行符 \n 表示換行,例子中方法 rstrip() 去掉文本中的換行符,然後輸出。
程序的運行效果如下:
如果在文件關閉之前程序發生BUG意外退出,則文件不會關閉,為了避免此類事件的發生,可以使用 with 語句:
with 語句的特點是即便在操作文件時發生錯誤,文件也會自動被清理。
fhand.read() 雖然可以讀取文本內容,但是當我們想要逐行處理文件內容,或者文件很大而無法一次性加載進內存的時候,就不適用了。
可以使用 for 語句逐行處理文件內容:
本程序中將文件名保存在變量 filename 中。
打開文件後,使用 for 語句按行讀取文件內容。例子中,每次循環依次取一行文本以字符串的格式保存在變量 line 中,每次循環中變量 count 自增1。
這個程序的作用是,打開程序所在目錄的 when_old.txt 文件,然後統計行數,並輸出結果。
when_old.txt 文件的內容是:
可以使用其他方法操作字符串 line :
程序將以 ‘And’ 開頭的行打印出來。
打開文件後,默認的權限是讀(r),如果要寫文件,則需要使用寫(w)或者追加(a)權限。
w權限,打開一個文件用於寫入。如果該文件存在,則覆蓋該文件;如果該文件不存在,則創建該文件。
a權限,打開一個文件用於追加。如果該文件存在,在文件末尾追加;如果該文件不存在,則創建該文件。
下面是一個使用w權限打開文件的例子:
例子中使用w權限打開該文件,並寫入兩行。(如果該文件存在,則內容會被覆蓋)
fhand.write() 不會自動添加換行符,所以如果需要換行,需在末尾添加 \n 。
下面我們寫一個統計文件中詞頻的程序。
它會統計文件中各個詞的出現的次數,然後由高到低顯示出前5個詞。
首先我們完成打開和關閉文件的程序內容:
在例子中,由用戶輸入文件名,並且使用異常捕獲以處理文件打開時的錯誤。
下面對內容進行統計:
這個程序:
如此,我們就在字典中存放了 單詞:次數 的鍵值對。
由於字典不能保存順序,所以不能對其進行排序。為此,將每個鍵值對都添加到一個列表中:
在列表 word_list 中,每一項都是一個元組,每個元組第一個值是單詞出現的次數,第二個值是單詞內容。
對其進行逆向(由大到小)排序:
打印最終結果:
整個程序如下:
下面是程序運行結果的示例:
以下是讀取hanoi.py程序行數的示例程序,供參考。
f=open(‘hanoi.py’,’r’)
lines=f.readlines()
f.close()
n=0
for line in lines:
n=n+1
print(n)
不用關心行數。
只要把要保存的變量,用字典組織起來。然後用str()行數轉成字符串存到文件中。
讀取的時候,只要將讀取的字符串,用eval()行數,再轉回字典,然後按key進行區分,分別還給變量就可以了。
1.默認你知道「指定行」的行號
那麼:
def appoint_line(num,file):
with open(file,”r”,encoding=’utf-8′) as f:
out = f.readlines[num-1]
return out
print(appoint_line(2,”c:/text.txt”))
以上示例為讀取c盤下的text.txt文件的第二行
2.假如所謂「指定行」為開頭幾個字符,這裡假設為三個
def appoint_line(file):
# appoimt_spring是指你指定行的前三個字符,你可以自行指定
appoint_spring = input(“”).strip()
with open(file,”r”,encoding=’utf-8′) as f:
for line in f.readlines():
if line[0:3] == appoint_spring:
return line
print(appoint_line(“c:/text.txt”))
以上示例為根據你輸入的所指定行的前三個字符打印出c盤下的text.txt文件下的「指定行」
我們使用python的時候經常需要讀取txt文件中的內容,那麼該如何讀取呢?下面我給大家分享一下。
01
首先我們新建一個txt文件,在裏面寫入一些內容,如下圖所示
02
接下來打開運行界面,輸入CMD命令,如下圖所示
03
然後進入CMD界面以後我們輸入python命令進入python環境,如下圖所示
04
最後我們通過python中的open方法打開txt文件,然後通過read方法讀取文件內容,如下圖所示
原創文章,作者:RXR3K,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/126212.html