Python中的文件连接有问题吗?

Python中的文件连接有问题吗?,python,file-io,concatenation,shutil,Python,File Io,Concatenation,Shutil,我有3个文件,分别是1.txt、2.txt和3.txt,我正在尝试将这些文件的内容连接到Python中的一个输出文件中。有人能解释为什么下面的代码只写1.txt的内容,而不写2.txt或3.txt?我相信这很简单,但我似乎无法解决问题 import glob import shutil for my_file in glob.iglob('/Users/me/Desktop/*.txt'): with open('concat_file.txt', "w") as concat_fil

我有3个文件,分别是
1.txt
2.txt
3.txt
,我正在尝试将这些文件的内容连接到Python中的一个输出文件中。有人能解释为什么下面的代码只写
1.txt
的内容,而不写
2.txt
3.txt
?我相信这很简单,但我似乎无法解决问题

import glob
import shutil

for my_file in glob.iglob('/Users/me/Desktop/*.txt'):
    with open('concat_file.txt', "w") as concat_file:
        shutil.copyfileobj(open(my_file, "r"), concat_file)

谢谢你的帮助

您不断覆盖同一个文件

或使用:

with open('concat_file.txt', "a")


您不断覆盖同一个文件

或使用:

with open('concat_file.txt', "a")


我相信你的代码的错误在于,在每次循环迭代中,你本质上是在给自己添加文件

如果手动展开循环,您将看到我的意思:

# my_file = '1.txt'
concat_file = open(my_file)
shutil.copyfileobj(open(my_file, 'r'), concat_file)
# ...
我建议事先决定要将所有文件复制到哪个文件,可能是这样:

import glob
import shutil

output_file = open('output.txt', 'w')

for my_file in glob.iglob('/Users/me/Desktop/*.txt'):
    with open('concat_file.txt', "w") as concat_file:
        shutil.copyfileobj(open(my_file, "r"), output_file)

我相信你的代码的错误在于,在每次循环迭代中,你本质上是在给自己添加文件

如果手动展开循环,您将看到我的意思:

# my_file = '1.txt'
concat_file = open(my_file)
shutil.copyfileobj(open(my_file, 'r'), concat_file)
# ...
我建议事先决定要将所有文件复制到哪个文件,可能是这样:

import glob
import shutil

output_file = open('output.txt', 'w')

for my_file in glob.iglob('/Users/me/Desktop/*.txt'):
    with open('concat_file.txt', "w") as concat_file:
        shutil.copyfileobj(open(my_file, "r"), output_file)

我不确定它是否覆盖了同一个文件;在这种情况下,你不会得到一份
3.txt
的副本吗?文件名不一定按词法顺序存储在目录中。@yi_H:哦,是的,我知道。好久没用了。谢谢,啊!谢谢,这就是问题所在。我很感激你的解释,因为这将有助于我在将来纠正这些错误。让我困惑的是让汤姆困惑的同一件事。我不确定它是否覆盖了同一个文件;在这种情况下,你不会得到一份
3.txt
的副本吗?文件名不一定按词法顺序存储在目录中。@yi_H:哦,是的,我知道。好久没用了。谢谢,啊!谢谢,这就是问题所在。我很感激你的解释,因为这将有助于我在将来纠正这些错误。使我困惑的是使汤姆困惑的同一件事。原文中的1
concat_文件
旨在达到
output_文件
在您的样本中所起的作用。原文中的1
concat_文件
旨在达到
output_文件
在您的样本中所起的作用。