整理了網路上的一些方法,一般有兩種方法:
第一種:是先把檔案讀入記憶體,在記憶體中修改後再寫入原始檔。
例子:將內容包含「123」的所有行刪去:
with open('c:/users/lai/desktop/1.txt','r') as r:
lines=r.readlines()
with open('c:/users/lai/desktop/1.txt','w') as w:
for l in lines:
if '123' not in l:
w.write(l)
第二種:我們可以使用 open() 方法把需要修改的檔案開啟為兩個檔案,然後逐行讀入記憶體,找到需要刪除的行時,用後面的行逐一覆蓋。實現方式見以下**。
with open('file.txt', 'r') as old_file:
with open('file.txt', 'r+') as new_file:
current_line = 0
# 定位到需要刪除的行
while current_line < (del_line - 1):
old_file.readline()
current_line += 1
# 當前游標在被刪除行的行首,記錄該位置
seek_point = old_file.tell()
# 設定游標位置
new_file.seek(seek_point, 0)
# 讀需要刪除的行,游標移到下一行行首
old_file.readline()
# 被刪除行的下一行讀給 next_line
next_line = old_file.readline()
# 連續覆蓋剩餘行,後面所有行上移一行
while next_line:
new_file.write(next_line)
next_line = old_file.readline()
# 寫完最後一行後截斷檔案,因為刪除操作,檔案整體少了一行,原檔案最後一行需要去掉
new_file.truncate()
sed 刪除某一行 sed刪除指定行
待處理文字如1 8行文字 cata1 sed刪除連續指定行 如1 4行 sed 1,4d a5 sed刪除不連續指定行 如第一行和第三行 sed e 1d e 3d a2 乙個例子 我有乙個list檔案如下 cat list unknown other 2 檔名,我要從檔案裡抓取一些資訊,下同,發現...
更改檔案,某一行
1 deffetch data 2print 這是查詢功能 3 tag false 4 data aaaa s n data 5 res data 6 with open bbb r encoding gbk as file 7for i in file 8if i data 9 tag true ...
jquery刪除表單動態新增的某一行
jquery刪除表單某一行報錯 先刪除第一行,可正常刪除,再刪除第三行報錯 rows為表單陣列,index為刪除的陣列項 通過列印index,定位到問題原因是刪除第一項後,陣列長度變為2,此時刪除最後一項,index為2 rows 2 為undefined 解決方法 刪除一行後替換為空,保證索引正確...