【发布时间】:2020-09-02 18:51:14
【问题描述】:
我正在尝试将多个文件从一个目录移动到另一个目录。
如果文件以sample_list 中的值开头,我尝试创建的函数应该会移动文件。我的问题是有多个文件以sample_list 中的值开头,这似乎导致了shutil 的问题。
import shutil
import os
source = './train/'
dest1 = './test/'
files = [
'195_reg_6762_1540.npz',
'1369_reg_7652_-2532.npz',
'195_reg_1947_-484.npz',
'1336_reg_6209_1217.npz',
'1198_reg_3784_-934.npz',
'12_reg_3992_-10.npz',
'1369_reg_3214_-91.npz']
test_samples = [195, 1493, 409, 339, 12, 1336]
#Move files which begin with values in test_samples [edited orig post to fix typo]
for f in files:
for i in test_samples:
if (f.startswith(str(i))):
shutil.move(source+f, dest1)
引发错误:
File "/home/usr/anaconda3/lib/python3.7/shutil.py", line 564, in move
raise Error("Destination path '%s' already exists" % real_dst)
Error: Destination path '/home/usr/Documents/project/data/test/195_reg_1947_-484.npz' already exists
如果要移动的测试样本中有多个文件具有值,它总是会失败。
将以test_samples 中的值开头的文件从source 目录移动到target 目录的正确方法是什么。
【问题讨论】:
标签: python linux directory move transfer