在下一次运行时使用python写入文件
我有以下代码:在下一次运行时使用python写入文件,python,file,Python,File,我有以下代码: f=open('data.txt', 'w') conn = urllib2.urlopen('http://example.com') page_html = conn.read() data=BeautifulSoup(page_html) count=0 out="" for val in data.findAll('td'): count=count+1 if(count%2==0 and val.contents): out=out+va
f=open('data.txt', 'w')
conn = urllib2.urlopen('http://example.com')
page_html = conn.read()
data=BeautifulSoup(page_html)
count=0
out=""
for val in data.findAll('td'):
count=count+1
if(count%2==0 and val.contents):
out=out+val.contents[0].strip(' \n\t')+"\n"
if(count>=18):
f.write(out+"\n")
break
f.closed
现在,当我执行代码时,上一次运行的输出进入data.txt文件
例如,现在url中有example.com,我运行代码,然后将url更改为stackoverflow.com。现在,当我再次运行它并检查data.txt时,我在data.txt文件中有example.com的输出。下次使用其他url运行时,我将在文件中获得stackoverflow.com的输出。有人能帮我解决这个问题吗?我检查了代码中每个阶段的输出。如果我直接给出输出而不是在文件中写入,它工作得很好。您可能希望使用
f.close()
而不是f.close
。后者不会关闭文件。它返回一个布尔值,告诉您文件是否已关闭
我还建议您使用,而不是手动关闭文件
with open('data.txt', 'w') as f:
# etc...
您可能希望使用
f.close()
而不是f.close
。后者不会关闭文件。它返回一个布尔值,告诉您文件是否已关闭
我还建议您使用,而不是手动关闭文件
with open('data.txt', 'w') as f:
# etc...
您想使用关闭您的文件
f.close()
函数调用,从而刷新输出缓冲区。您想用
f.close()
函数调用,从而刷新输出缓冲区。是否希望在末尾使用
f.close()
而不是f.closed
?还应该指出,在Python中,if语句周围不使用括号。如果计数>=18,它应该是,如果计数%2==0和val.contents:
@burhan,这会有区别吗?它不会生成任何错误或警告。@gopi1410这是Python中正确的操作方法。它是Python中()含义的副作用;它没有做你认为它是什么。你不想在结尾处使用f.close()
而不是f.closed
?还应该指出,在Python中,if语句周围不使用括号。如果计数>=18,它应该是,如果计数%2==0和val.contents:
@burhan,这会有区别吗?它不会生成任何错误或警告。@gopi1410这是Python中正确的操作方法。它是Python中()含义的副作用;它不是在做你认为它是什么。这是最好的解决方案。它不仅更具python风格和可读性,而且可以为您处理关闭操作,即使在出现异常时也是如此。f.close()与f.closed有何不同?我认为两者都做相同的事情。@gopi1410f.close()
是一个关闭文件的函数f.closed
是一个属性,告诉您文件是否已关闭。您可能应该更仔细地阅读文档-在Python中很少有两种方法可以完成一件事(这是一个没有的特定设计目标)。&感谢with
语句。我不知道,也没有太多地使用python。@Lattyware@Mark Byers将f.close
更改为f.close()
也不起作用!不过,我还没有尝试使用该语句。我认为它应该在f.close()之后工作,因为文件正在正确关闭。我不明白它为什么每次都在文件中保存以前的输出。+1。这是最好的解决方案。它不仅更具python风格和可读性,而且可以为您处理关闭操作,即使在出现异常时也是如此。f.close()与f.closed有何不同?我认为两者都做相同的事情。@gopi1410f.close()
是一个关闭文件的函数f.closed
是一个属性,告诉您文件是否已关闭。您可能应该更仔细地阅读文档-在Python中很少有两种方法可以完成一件事(这是一个没有的特定设计目标)。&感谢with
语句。我不知道,也没有太多地使用python。@Lattyware@Mark Byers将f.close
更改为f.close()
也不起作用!不过,我还没有尝试使用该语句。我认为它应该在f.close()之后工作,因为文件正在正确关闭。我不明白它为什么每次都在文件中保存以前的输出。