我試圖刪除38行文本,在Python中的.txt文件中遇到特定短語,同時仍然打印文本的其餘部分。不識別Python中的循環變量
我目前擁有的代碼是
with open('text_file.txt','r') as f:
lines = f.readlines()
for line in lines:
if "certain_phrase" in line:
for num in range(38):
del line
else:
print(line,end='')
不過,我不斷收到以下錯誤:
Traceback (most recent call last):
File "C:\<location of file>\python_program.py", line 6, in <module>
del line
NameError: name 'line' is not defined
沒有人有任何建議或線索,爲什麼它不能識別「行」一旦我把它放在下面的for循環裏面?另外,有沒有更好的方法來執行這種程序?
即使沒有錯誤,此代碼也不會執行你想要的操作 – 2015-04-03 15:09:20
它不知道變量'line'在你的'for循環中num的第二次迭代,因爲你剛刪除它在以前的迭代中並沒有在 – 2015-04-03 15:11:05
之間重新定義它首先建議:讀取文件時不需要第2行(由於將整個文件存儲在內存中,而不是逐行讀取,這會浪費內存)=>在f' – 2015-04-03 15:15:52