Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在下一次运行时使用python写入文件_Python_File - Fatal编程技术网

在下一次运行时使用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有何不同?我认为两者都做相同的事情。@gopi1410
f.close()
是一个关闭文件的函数
f.closed
是一个属性,告诉您文件是否已关闭。您可能应该更仔细地阅读文档-在Python中很少有两种方法可以完成一件事(这是一个没有的特定设计目标)。&感谢
with
语句。我不知道,也没有太多地使用python。@Lattyware@Mark Byers将
f.close
更改为
f.close()
也不起作用!不过,我还没有尝试使用该语句。我认为它应该在f.close()之后工作,因为文件正在正确关闭。我不明白它为什么每次都在文件中保存以前的输出。+1。这是最好的解决方案。它不仅更具python风格和可读性,而且可以为您处理关闭操作,即使在出现异常时也是如此。f.close()与f.closed有何不同?我认为两者都做相同的事情。@gopi1410
f.close()
是一个关闭文件的函数
f.closed
是一个属性,告诉您文件是否已关闭。您可能应该更仔细地阅读文档-在Python中很少有两种方法可以完成一件事(这是一个没有的特定设计目标)。&感谢
with
语句。我不知道,也没有太多地使用python。@Lattyware@Mark Byers将
f.close
更改为
f.close()
也不起作用!不过,我还没有尝试使用该语句。我认为它应该在f.close()之后工作,因为文件正在正确关闭。我不明白它为什么每次都在文件中保存以前的输出。