当我在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.
请注意,它接受任何可迭代且str
可迭代,因此为什么不为字符串中的每个项目写一行,writelines()
只是写一个字符串?
我是否需要使用f.writelines(list('aaa'))
来获得所需的结果?
我想知道这是故意考虑还是仅仅是一个新奇的错误。
答案 0 :(得分:0)
NULL
将一个行列表写入流中。不添加行分隔符,所以 通常,所提供的每条线都有一个线分隔符 结束。
示例:
writelines(lines)
输出:
with open('test.txt', 'w') as f:
f.writelines(['a\n','a\n','a\n'])
请注意,行分隔符a
a
a
是每个字符串的一部分。