我有以下 .txt 檔案:
28563868423
37832070256
49953540371
39723132411
48576892756
49159435134
49580970815
50007496483
8122645142
例如,我想洗掉長度為“id”(前 3 行)的內容。
但是當我這樣做時,它會洗掉第一行和第四行。
id=[[''],[''],['']]
lines=[]
with open('Id.txt','r') as f:
lines=f.readlines()
with open('Id.txt','w') as f:
for number,line in enumerate(lines):
if number not in [0,len(id)]:
f.write(line)
uj5u.com熱心網友回復:
當您使用時,[0, len(id)]您實際上是在創建一個包含兩個專案的串列 - 0 和len(id). 您似乎對從 0 到的數字范圍感興趣len(id)-range(len(id))這就是您要尋找的。
如果您總是對消除前 N 行感興趣,您還可以簡單地檢查是否等于或大于len(id)- 的行號if number >= len(id): ...。
然而,更 Pythonic 和高效的解決方案是使用串列切片。您可以選擇所有的行開始len(id)用lines[len(id):]。請參閱 Python's Introduction to Lists,其中介紹了切片符號。
uj5u.com熱心網友回復:
in [0,len(id)]從字面上檢查它是第一len(id)行還是第 - 行。對于所需的結果,檢查應該是:
if number >= len(id):
...
或者,更好的是,用陣列切片替換它:
for line in lines[len(id):]:
f.write(line)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/341239.html
上一篇:替換檔案中的單詞
