我正在尝试将文件列表的内容复制到单个文件中。每个文件的内容由换行符分隔。我尝试了以下
for file in os.listdir(files_path):
path = os.path.join(files_path, file)
with open(path) as f:
with open(dest_file, "a") as f1:
f1.write("\n")
for line in f:
f1.write(line)
我期待这个:
previous content of dest file
content of file 1
content of file 2
content of file 3
但得到了这个:
previous content
content of file 1
content of file 2
content of file 3
这对我来说完全是奇怪的:\
编辑:现在我只是试了这个,这让我发疯了。
file1 = open("dest.txt",'a')
file1.write("hello")
file1.write("\n")
file1.write("hi")
file1.close()
dest.txt文件仅包含:
hello
hi
我在Notepad ++中打开了文件并启用了“显示所有字符”。并发现了这个:
编辑2:我必须两次写这个file1.write("\n")
以获得我想要的输出。我想我的问题现在解决了!添加了解释发生了什么的答案。
答案 0 :(得分:0)
假设dest文件包含内容,并且不以新行结束。光标将位于最后一行的末尾。 此处(|)是光标。
previous content|
现在f1.write("\n")
会将光标移到下一行,如下所示:
previous content
|
添加f1.write("\n")
现在将光标移到下一行,新内容将从该行开始写入。
previous content
|(new contents)
这会产生预期的输出。