Python 如何替换目录中的txt文件
有一个目录A,其中包含txt文件的几个子目录。还有另一个目录B,其中包含txt文件。A中有几个txt文件在B中具有相同的名称,但内容不同。现在我想把B中的txt文件移到A中,并用相同的名称覆盖这些文件。我的代码如下: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
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 < /代码>的根目录将不是正确的路径。嗨,艾希礼,如果这个或任何答案已经解决了你的问题,请点击点击检查标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。