如何替换目录中的txt文件

时间:2018-03-16 13:02:03

标签: 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(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))

但是当我跑这个时,它什么也没做。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

以下将做你想要的。您需要小心保留子目录结构,以避免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])