使用由新行分隔的for循环将文件列表的内容复制到另一个文件 - Python

时间:2015-04-16 16:02:56

标签: python

我正在尝试将文件列表的内容复制到单个文件中。每个文件的内容由换行符分隔。我尝试了以下

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 ++中打开了文件并启用了“显示所有字符”。并发现了这个: Notepad++ snip

编辑2:我必须两次写这个file1.write("\n")以获得我想要的输出。我想我的问题现在解决了!添加了解释发生了什么的答案。

1 个答案:

答案 0 :(得分:0)

假设dest文件包含内容,并且不以新行结束。光标将位于最后一行的末尾。 此处(|)是光标。

previous content|

现在f1.write("\n")会将光标移到下一行,如下所示:

previous content
|

添加f1.write("\n")现在将光标移到下一行,新内容将从该行开始写入。

previous content

|(new contents)

这会产生预期的输出。