python - write() 与 writelines() 和连接字符串

标签 python string file-io python-2.x

所以我正在学习 Python。我正在学习类(class)并遇到了一个问题,我必须将大量 target.write() 压缩为单个 write(),同时拥有一个 "\n" 在每个用户输入变量(write() 的对象)之间。

我想出了:

nl = "\n"
lines = line1, nl, line2, nl, line3, nl
textdoc.writelines(lines)

如果我尝试这样做:

textdoc.write(lines)

我得到一个错误。但如果我输入:

textdoc.write(line1 + "\n" + line2 + ....)

然后它工作正常。为什么我无法在 write() 中使用字符串作为换行符,但我可以在 writelines() 中使用它?

Python 2.7

最佳答案

  • writelines 需要一个可迭代的字符串
  • write 需要一个字符串。

line1 + "\n"+ line2 将这些字符串合并为一个字符串,然后将其传递给 write

请注意,如果您有很多行,您可能需要使用 "\n".join(list_of_lines)

关于python - write() 与 writelines() 和连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377473/

相关文章:

python - 从 Python 中的字符串中删除所有冠词、连接词等

string - 是否有不加引号的多态 `toString` 函数?

python - 无法将 Jupyter 笔记本导出到 Azure ML Studio 中的 Python 脚本

string - 为什么我得到的字符串长度值不正确?

python - 无法使用从 python 中同一目录中的另一个文件访问的类

ruby - 从 ruby​​ 中的单段中的标准输入或文件读取

java - 如何使用 Java 读取正在写入的文件?

c# - 两台服务器之间的高效文件读/写

使用 Popen 启动的 Python 服务存在日志记录 stderr 和 stdout 重定向问题

python - ECS 任务只能从 SQS 队列中挑选一条消息