提问者:小点点

使用字符串调用Python2 writelines()


当我在Python2和Python3中使用f.writelines('aaa')时,字符串aaa被写入文件,但我期望的是a的三行独立的代码。

这是writelines的文档:

writelines(sequence_of_strings) -> None.  Write the strings to the file.

Note that newlines are not added.  The sequence can be any iterable object 
producing strings. This is equivalent to calling write() for each string.

请注意,它接受任何iterable,str是iterable,那么为什么不为字符串中的每个项目写一行,writelines()只写一个字符串呢?

我是否需要使用f.writelines(list('aaa'))来获得所需的结果?

我想知道这是一个故意的考虑还是仅仅是一个新的错误。


共1个答案

匿名用户

从文件

writelines(lines)

将行列表写入流。未添加行分隔符,因此通常提供的每条行的末尾都有行分隔符。

示例:

with open('test.txt', 'w') as f:
    f.writelines(['a\n','a\n','a\n'])

输出:

a
a
a

请注意,行分隔符\n是每个字符串的一部分。