【问题标题】:How to write a string with mutiple lines into file with python如何使用python将具有多行的字符串写入文件
【发布时间】:2020-06-23 02:44:31
【问题描述】:
for j in search(query, tld="co.in", num=10, stop=10, pause=5):
    print(j)
f.writelines(j)

我一直在尝试将 J 写入文本文件,但它只给了我第 10 个 url 并省略了前 9 个这是我第一次真正被难住了谁能帮忙?对于上下文,我使用 python 搜索和记录谷歌搜索,它输出如下 网址1 \n 网址2 \n 网址3 \n 网址4 \n 网址5 \n 网址6\n 网址7 \n 网址8 \n 网址9 \n 网址10 没关系,但是当我尝试将其写入文件时,它只写入 url 10

【问题讨论】:

  • (1) 修复显示代码的缩进。 (2) 如何输出正确的网址?有没有额外的print
  • 是的,很抱歉缩进是打印语句。 url 只是由该搜索功能逐行输出的,所以这就是它们提供给我的方式,但是当我写入文件时,它只执行一行。
  • 最后一行也必须在循环中。

标签: python python-3.x file


【解决方案1】:

这里的尖叫问题是 f.writelines(j) 在循环之外(当然,如果这不仅仅是帖子上的错字)。另外,我认为在传递单个字符串时使用 writelines 没有意义。

for j in search(query, tld="co.in", num=10, stop=10, pause=5):
    print(j)
    f.write(j + '\n')

这有什么不同吗?

【讨论】:

  • 谢谢路易斯!效果很好,尽管我仍然对为什么它仍然可以在循环之外打印一行感到困惑,但并不是所有这些对我来说都没有,但我仍然在学习。
  • 啊,For 循环通常有所谓的循环变量,在本例中是 j。每次循环迭代 j 都会采用一个新值,因此在它采用新值之前您只有一次迭代来处理它。在您的情况下,每次循环运行时, j 都会采用不同网址的形式。循环变量仅持续循环的生命周期,因此不应在循环之外使用它们。你可以在这里了解更多信息:Python ForLoops
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多