Python“;打开(文件)为“f”;如果在循环中插入,则不保存内容
我主要使用带有open('file.txt',w')的Python“;打开(文件)为“f”;如果在循环中插入,则不保存内容,python,python-2.7,python-3.x,with-statement,Python,Python 2.7,Python 3.x,With Statement,我主要使用带有open('file.txt',w')的作为f:进行写(读)。今天我注意到一些奇怪的事情 我在一个网站上爬行,有正常的分页 While True: # visit url, get/scrape data # save data in text file # find next link(pagination) # loop till next url is available. 为了先保存数据,我使用了和 with open('data.txt','w
作为f:
进行写(读)。今天我注意到一些奇怪的事情
我在一个网站上爬行,有正常的分页
While True:
# visit url, get/scrape data
# save data in text file
# find next link(pagination)
# loop till next url is available.
为了先保存数据,我使用了和
with open('data.txt','w') as f:
While True:
# visit url, get/scrape data
f.write(some_scraped_data)
# find next link(pagination)
# loop till next url is available.
但当我运行这个脚本时,如果发生了一些异常,这个循环就会终止,并且没有数据保存在data.txt文件中
但是,当我执行f=open('data.txt','w')
时,无论爬网的数据是什么,都会被保存(直到出现异常),即使我没有放置f.close()
我的问题是,我们如何用和实现同样的目标。我只是好奇,在哪里每个人都推荐使用和
进行文件处理,而它不支持此功能
PS:我对python不是很有经验。因此,如果您觉得这个问题很愚蠢,我很抱歉,根据,如果发生异常,使用“with”将正确关闭文件,因此这是一种很好的方法
但是,您可以尝试f.flush()
将缓冲区写入光盘。有关flush的更多信息,请点击此处:
f = open('data.txt','w')
While True:
# visit url, get/scrape data
f.write(some_scraped_data)
# find next link(pagination) til next url is available.