gpt4 book ai didi

python - 将大量文件从一个位置复制到另一个位置

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:41 24 4
gpt4 key购买 nike

(使用 Python 3.4.2)我正在尝试将不同位置的超过 8,000 个文件的列表复制到暂存目录。源路径类似于 D:\dir\img0\000,目标路径类似于 D:\stage2\NW000.tif。

根据我的理解,shutil 可以解决这个问题,我在网上找到了一个简单的例子,我一直在努力适应它以达到我的目的。我将源路径和目标路径的 8,000 多条记录保存在两个单独的文本文件中,每个目录路径后都有换行符。我希望变量 src 和 dst 存储列表的所有值,并希望 shutil.copy 将文件复制到它们的新目的地。我一直在尝试通过创建 1 个源文件夹和 3 个目标来测试代码。文件夹:Test、TestA、TestB、TestC。我创建了两个包含路径列表的文本文件,它们的外观如下:

(source.txt)
C:\Users\user1\Desktop\Test\t1.txt
C:\Users\user1\Desktop\Test\t2.txt
C:\Users\user1\Desktop\Test\t3.txt

(dest.txt)
C:\Users\user1\Desktop\TestA\1t.txt
C:\Users\user1\Desktop\TestB\2t.txt
C:\Users\user1\Desktop\TestC\3t.txt

我将两个列表文本文件、三个虚拟文本文件和脚本保存在测试目录中并执行脚本,但我没有在目标目录中找到这些文件。我想知道为什么这个脚本不起作用(将源文件、目标文件和脚本文件放在哪里以便脚本正确执行)。:

import shutil
import errno

file = open('source.txt', 'r')
source = file.readlines()
file = open('dest.txt', 'r')
destination = file.readlines()


def copy(src, dst):
try:
shutil.copytree(src, dst)
except OSError as e:
# If the error was caused because the source wasn't a directory
if e.errno == errno.ENOTDIR:
shutil.copy(src, dst)
else:
print('Directory not copied. Error: %s' % e)

copy(source, destination)

最佳答案

shutil.copytree(src, dst)一个 目录树从 src 复制到 dst。它不会自动遍历文件列表。您可以尝试压缩源和目标列表并循环结果列表:

for src, dst in zip(source, destination):
copy(src, dst)

当您回退到 shutil.copy(src, dst) 时,您也可能会遇到问题 - 如果目标目录尚不存在,这将失败。

关于python - 将大量文件从一个位置复制到另一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27250872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com