如何从打印输出txt文件

2024-10-02 08:16:11 发布

您现在位置:Python中文网/ 问答频道 /正文

posts = driver.find_elements_by_class_name('whiteLink')
for post in posts:
print(post.text)
saveFile = open('Names.txt','w')
saveFile.write(post)
saveFile.close()

我想将帖子保存到txt文件中,与py文件位于同一文件夹中。 我正在从网络上抓取信息,并试图将其放入txt文件中


Tags: 文件nameintxtforbydriverelements
1条回答
网友
1楼 · 发布于 2024-10-02 08:16:11

一种解决方案是重新安排函数调用。在for循环之前,可以创建文件。对于post中的每个post,打印到屏幕并将相同的数据写入文件。需要记住的一件事是,并非所有字符串都有换行符(下面的“\n”)。这意味着,如果您只是在添加字符的情况下编写post.text,它将全部打印在文档中的一行上

posts = driver.find_elements_by_class_name('whiteLink')
saveFile = open('Names.txt','w')
for post in posts:
    print(post.text)
    saveFile.write(post.text + "\n")
saveFile.close()

另一个类似(坦率地说更好)的解决方案是使用上下文管理器。这样做的目的是确保文件在退出语句时自动关闭。如果在循环中遇到任何错误,这可能会更好

posts = driver.find_elements_by_class_name('whiteLink')
with open('Names.txt','w') as saveFile:
    for post in posts:
        print(post.text)
        saveFile.write(post.text + "\n")

如果上述操作不起作用(如您在评论中提到的),您可以存储一个字符串并立即打印或写入整个字符串

posts = driver.find_elements_by_class_name('whiteLink')
output = ("{}\n"*len(posts)).format([post.text for post in posts])
print(output)
with open('Names.txt','w') as saveFile:
    saveFile.write(output)

相关问题 更多 >

    热门问题