我想一次讀取一行,並將該String分配給我的Python腳本中的變量。一旦這個值被分配,我想從txt文件中刪除該行。剛纔我有下面的代碼:每次腳本運行時從文本文件讀取行並刪除它們
import os
# Open file with a bunch of keywords
inputkeywordsfile = open(os.path.join(os.path.dirname(__file__),'KeywordDatabase.txt'),'r')
# Assigning
keyword = inputkeywordsfile.readline().strip()
因此,舉例來說,如果.txt文件具有這樣的結構:
dog
cat
horse
我第一次運行我的腳本,狗將被分配到關鍵字。 第二次運行我的腳本時,貓將被分配給關鍵字,狗將被從文本文件中刪除。
解決:
readkeywordsfile = open(os.path.join(os.path.dirname(__file__),'KeywordDatabase.txt'),'r')
firstline = readkeywordsfile.readline().strip()
lines = readkeywordsfile.readlines()
readkeywordsfile.close()
del lines[0:1]
writekeywordsfile = open(os.path.join(os.path.dirname(__file__),'KeywordDatabase.txt'),'w')
writekeywordsfile.writelines(lines)
writekeywordsfile.close()
keyword = firstline
[刪除特定線路在一個文件中(蟒)]的可能重複(http://stackoverflow.com/questions/4710067/deleting-a-specific-line-in-a-file- python) – Talvalin
實質上,您需要以讀取模式打開文件,讀取所有行,關閉文件,然後在寫入模式下重新打開文件並寫入要保留的行。 – Talvalin
爲什麼不將文件讀入列表中並根據需要使用列表中的項目? – devnull