所謂迭代,是指不斷重複某個動作,直到這些動作都完成在while迴圈中,read方法是最常見的對檔案迭代的方法
#! /usr/bin/evn python
#-*- coding:utf-8 -*-
path='./test.txt'
f_name=open(path,'w')
print('write lenght:',f_name.write('hello'))
f_name=open(path)
c_str=f_name.read(1)
while c_str:
print('read c_str is:',c_str)
c_str=f_name.read(1)
f_name.close()
執行結果:
write lenght: 5
read c_str is: h
read c_str is: e
read c_str is: l
read c_str is: l
read c_str is: o
可以看到,該操作對檔案中的每個字元都進行迴圈。這個程式執行到檔案尾部時,read方法會返回乙個空字元。
#優化**
f_name=open(path)
while true:
c_str=f_name.read(1)
if not c_str:
break
print('read c_str is:',c_str)
f_name.close()
在實際操作中,處理檔案時可能需要對檔案的行進行迭代,而不是單個字元。
使用readline方法按行讀取字元:
#! /usr/bin/evn python
#-*- coding:utf-8 -*-
path='./test.txt'
f_name=open(path)
while true:
line=f_name.readline(1)
if not line:
break
print('read line is:',line)
f_name.close()
使用read和readlines方法不帶引數時將載入檔案中所有內容,然後載入到記憶體中。
當檔案很大時,這種方法會占用太多的記憶體,甚至直接記憶體溢位,從而導致失敗。這種情況下,我們可以考慮使用while和readline方法代替這些方法。
按行讀取檔案時,若能使用for迴圈,則稱之為懶載入式迭代,因為在操作過程中只讀取實際需要的部分。
使用fileinput需要匯入該模組:
#! /usr/bin/evn python
#-*- coding:utf-8 -*-
import fileinput
path='g:/test.txt'
for ine in fileinput.input(path):
print('line is:',ine)
從python2.2開始,檔案物件是可迭代的,這意味著可以直接在for迴圈中使用檔案物件,從而進行迭代:
#! /usr/bin/evn python
#-*- coding:utf-8 -*-
path='g:/test.txt'
f_name=open(path)
for line in f_name:
print('line is:',line)
f_name.close() #迭代結束後要顯式關閉檔案
python對檔案的 python對檔案的讀寫
檔案 file 什麼是檔案 檔案是用於資料儲存和單位 檔案通常用來長期儲存資料 檔案中的資料是以位元組為單位進行順序儲存的 檔案的操作流程 1.開啟檔案 2.讀 寫檔案 3.關閉檔案 注 任何的作業系統,乙個應用程式同時開啟檔案的數量有最大數限制 檔案的開啟函式 open file,mode rt ...
linux less對檔案內容進行搜尋
可以先用 less 檔名 來開啟檔案,然後可以按回車,開啟底部命令輸入行 即出現乙個冒號的位置 然後可以使用 鍵盤上的 home 鍵跳到檔案開始,end鍵跳到最後,pgup向前翻頁,pgdn向下翻頁,還可以在冒號後面直接輸入 要搜尋的關鍵字 進行 高亮顯示,可以 用 n 向前查詢或者 n 向後查詢。...
python對檔案操作
python中對檔案 資料夾 檔案操作函式 的操作需要涉及到os模組和shutil模組。得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 os.removedi...