- 1、用python讀取文本文件,對讀出的每一行進行操作,這個怎麼寫?
- 2、在Python解釋器中輸入print(47)並按下回車,解釋器在下一行打印出什麼?
- 3、python操作文本文件
- 4、python的print命令
- 5、如何用python將內容換行輸出
用python讀取文本文件,對讀出的每一行進行操作,寫法如下:
f = open(“test.txt”, “r”)
while True:
line = f.readline()
if line:
pass # do something here
line=line.strip()
p=line.rfind(‘.’)
filename=line[0:p]
print “create %s”%line
else:
break
f.close()
擴展資料:
Python將txt文件讀取到一個字符串里的操作方法如下:
1、首先,添加Python文件和文本文件以在vscode中讀取,如下圖所示。
2、其次,完成上述步驟後,在txt文件中寫入一些內容以用於內容讀取,只需將其寫入即可,如下圖所示。
3、接着,完成上述步驟後,必須導入os文件,以便可以在os中調用某些文件操作方法,如下圖所示。
4、然後,完成上述步驟後,打開要讀取的文件,並將讀取的內容數據複製到字符串中,如下圖所示。
5、隨後,完成上述步驟後,打印字符串以顯示內容,以方便參考,如下圖所示。
6、接着,完成上述步驟後,運行jy.py文件,該文件將開始讀取和打印內容,如下圖所示。
7、最後,完成上述步驟後,可以看到已讀取txt文件的內容,如下圖所示。
47啊
打回車就是完成一個語句,如果不是沒寫完的就是直接把這行解析了
print是打印函數,裡面的內容是47 執行結果是在標準輸出流打印一個47
也就是解釋器的下一行
在磁盤上讀寫文件之前,必須先打開這個文件。打開文件就需要提供文件的路徑。
在與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 中,每一項都是一個元組,每個元組第一個值是單詞出現的次數,第二個值是單詞內容。
對其進行逆向(由大到小)排序:
打印最終結果:
整個程序如下:
下面是程序運行結果的示例:
print命令用來輸出指定對象的內容,語法為:
print(對象1[,對象2,……sep=分隔符,end=終止符])
1.對象1,對象2,……:print命令可以一次打印多個對象數據,對象之間以逗號“,”分開。
2.sep:分隔符號,如果要輸入的多個對象間需要用指定的符號進行分隔,則可通過此參數進行設置,默認值為一個空格符(“ ”)。
3.end:終止符,輸入完畢後自動添加的字符,默認值為換行符(“ ”),所以下一次執行print命令會輸出在下一行。
print命令支持參數格式化功能,即使用”%s”代表字符串,”%d”代表整數,”%f”代表浮點數,其語法格式為:
print(對象 %(參數行))
例如:
參數格式化可以精確控制輸出位置,讓輸出的數據整齊排列,例如:
1.%5d:固定輸出為5個數字的寬度,若輸出少於5位,則會在數字的左邊輸入空格符(若數值大於5位,則會全部輸出)
2.%5s:固定輸出為5個字符的寬度,若輸出少於5位,則會在字符串的左邊輸入空格符(若數值大於5位,則會全部輸出)
3.%8 .2f :固定輸出8 個字符寬度(含小數點),其中小數點輸出為2 位。若整數部分少於5 位( 8 – 3=5 ),會在左邊填入空格符;若小數少於2 位,會在右方填入“ 0″
例如:用格式化輸出的方法輸出23.8:
也可使用字符串的format 方法來做格式化,用一對大括號“{}”表示參數位置,語法為:
print (字符串.format (參數行))
例如,用字符串的format 方法輸出下列字符串及整數:
文章結尾附上Python3.9.7文檔中print命令的內容
print(*objects, sep=’ ‘, end=’ ‘, file=sys.stdout, flush=False)
將 objects 打印到 file 指定的文本流,以sep 分隔並在末尾加上 end。 sep, end, file 和 flush 如果存在,它們必須以關鍵字參數的形式給出。
所有非關鍵字參數都會被轉換為字符串,就像是執行了 str() 一樣,並會被寫入到信息流,以 sep 且在末尾加上 end。 sep 和 end 都必須為字符串;它們也可以為 None,這意味着使用默認值。 如果沒有給出 objects,則print() 將只寫入 end。
file 參數必須是一個具有 write(string) 方法的對象;如果參數不存在或為 None,則將使用 sys.stdout。 由於要打印的參數會被轉換為文本字符串,因此 print() 不能用於二進制模式的文件對象。 對於這些對象,應該改用 file.write(…)。
輸出是否被緩存通常決定於 file,但如果 flush 關鍵字參數為真值,信息流會被強制刷新。
在 3.3 版更改: 增加了 flush 關鍵字參數。
1、下載writerow,查詢可以得到下圖內容:
2、輸出的csv的效果是:行末是CR,然後才是一個CRLF的換行
3、使用binary模式即可
改為
就能解決問題了。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127174.html