我想在python中讀取它之後立即刪除一行。剛讀完之後刪除一行
with open("pages_Romance") as f:
for line in f:
print "Page: " + line
#Do something with the line
delete_a_line("pages_Romance", line)
我的功能delete_a_line實現,如:
def delete_a_line(path_file, line):
with open(path_file, "r") as f:
urls = f.readlines()
if len(urls) == 1:
print "File " + path_file + " deleted"
os.remove(path_file)
else:
with open(path_file, "w") as f:
for url in urls:
if url != line:
f.write(url)
else:
print url
我的文件pages_Romance包含200周的網址(一個由線),每次我讀的URL的時間我想刪除它。問題是每次啓動腳本時,我在同一個地方得到同樣的問題,我的文件中的URL編號163被切斷,然後腳本停止。它工作得很好,如果我得到小於163名的網址,但如果我有163以上的網址,我會得到下面的輸出:
Page: http://www.allocine.fr/films/genre-130
然後腳本停止。我應該有:
Page: http://www.allocine.fr/films/genre-13024/?page=163
我你們可以幫我弄清楚這個問題。如果你願意,你可以試試這個腳本,它將與200頁的URL創建文件:
def create_url_file():
with open("pages_Romance", "w") as f:
for i in range(1,201):
f.write("http://www.allocine.fr/films/genre-13024/?page=" + str(i) + "\n")
從文件中刪除行對我來說似乎很奇怪。你總是可以用'urls = [line.rstrip()for line in file]',然後簡單地用urls.pop(0)''把它們一個一個拉出來......如果你覺得有必要這樣做。 –
要知道爲什麼它停在163處,我們需要知道'#用線做了些什麼「。但通常情況下,您不應該同時打開同一個文件3次,並嘗試使用3個不同的文件處理程序對其進行讀取和寫入。 – Stuart
這是爲了抓取一個網站,我希望能夠在連接問題的情況下重新啓動抓取過程 – mel