python - 在下次运行时执行的 python 中写入文件

标签 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+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.closed。后者不会关闭文件。它返回一个 bool 值,告诉您文件是否已关闭。

我还建议您使用 with statement而不是手动关闭文件。

with open('data.txt', 'w') as f:
    # etc...

关于python - 在下次运行时执行的 python 中写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353215/

相关文章:

c - 使用 c 仅从文本文件中获取数字

c - 使用 fgetc 将数据加载到二维数组中?

python - Tkinter, 'module' 对象没有属性 'Frame'

Python:如何在列表列表中将相似列表分组在一起?

java - 如何使用拆分将文件中的值添加到数组中?

c# - 如何将目录和文件从一个外部复制到另一个 C# 控制台

java - Java 递归读取 .txt 文件

python - 如何使用逐元素数据框操作?

python - 如何在 Python 中保留 CSV 文件中的引号?

python - 您可以推荐什么适用于 Python 的 Solr 客户端库,为什么?