目录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))
但是当我跑这个时,它什么也没做。任何人都可以帮我解决这个问题吗?
答案 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])