python 對檔案內容迭代

2021-10-01 13:20:41 字數 2040 閱讀 6701

所謂迭代,是指不斷重複某個動作,直到這些動作都完成

在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...