【发布时间】:2015-01-30 18:50:55
【问题描述】:
(使用 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)
【问题讨论】:
-
你的函数定义在你的调用之后。先改变它。
-
@BhargavRao 我将函数调用放在定义之后,但就输出而言,它没有任何变化。
标签: python