我想在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