Python 如何替换目录中的txt文件

Python 如何替换目录中的txt文件,python,Python,有一个目录A,其中包含txt文件的几个子目录。还有另一个目录B,其中包含txt文件。A中有几个txt文件在B中具有相同的名称,但内容不同。现在我想把B中的txt文件移到A中,并用相同的名称覆盖这些文件。我的代码如下: import shutil import os src = '/PATH/TO/B' dst = '/PATH/TO/A' file_list = [] for filename in os.walk(dst): file_list.append(filena

有一个目录A,其中包含txt文件的几个子目录。还有另一个目录B,其中包含txt文件。A中有几个txt文件在B中具有相同的名称,但内容不同。现在我想把B中的txt文件移到A中,并用相同的名称覆盖这些文件。我的代码如下:

 import shutil
 import os
 src = '/PATH/TO/B'
 dst = '/PATH/TO/A'
 file_list = []

 for filename in os.walk(dst):
    file_list.append(filename)

 for root, dirs, files in os.walk(src):
    for file in files:

        if file in file_list:
            ##os.remove(dst/file[:-4] + '.txt')
            shutil.move(os.path.join(src,file),os.path.join(dst,file))

但当我运行这个时,它什么也没做。有人能帮我吗?

以下内容将满足您的要求。您需要小心地保留子目录结构,以避免出现
FileNotFound
异常。在测试目录中对它进行测试,然后再删除您想要修改的实际目录,这样您就知道它做了您想要的事情

import shutil
import os
src = 'B'
dst = 'A'
file_list = []
dst_paths = {}
for root, dirs, files in os.walk(dst):
    for file in files:
        full_path = os.path.join(root, file)
        file_list.append(file)
        dst_paths[file] = full_path

print(file_list)
print(dst_paths)

for root, dirs, files in os.walk(src):
    for file in files:
        if file in file_list:
            b_path = os.path.join(root, file)
            shutil.move(b_path,dst_paths[file])

乍一看很好。尝试添加一些日志语句以查看程序的哪个部分产生了哪些结果。我怀疑
file\u list
是空的或元组列表,因为
os.walk
函数返回元组,而不仅仅是文件名。您可能需要为语句使用类似的for语句,该语句用于遍历
src
dir。另外,在第二个循环中,您的src路径将不正确,因为您只有文件名而不是完整路径。加入<代码> SRC < /代码>的根目录将不是正确的路径。嗨,艾希礼,如果这个或任何答案已经解决了你的问题,请点击点击检查标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。