将单个230 pdf文件移动到已创建的文件夹中

时间:2019-04-09 22:54:44

标签: gae-python27

@nmnh我正在尝试移动200多个pdf文件,每个都移到已经创建并命名为2018的单独文件夹中。每个文件的目标路径都类似于GFG-0777 >> 2018。每个pdf文件都有一个唯一的GFG-0 ###名称,该名称与我已经创建的指向2018年目标文件夹的文件夹相匹配。不知道如何迭代并将每个pdf放入正确的文件夹中。...:/

我尝试过shutil.move,我认为这是最好的,但是我认为路径存在问题。

import os
import shutil


srcDir = r'C:\Complete'
#print (srcDir)
dstDir = r'C:\Python27\end_dir'
dirList = os.listdir(srcDir)
for f in dirList:
    fp = [f for f in dirList if ".pdf" in f] #list comprehension to iterate task (flat for loop)
for file in fp:
    dst = (srcDir+"/"+file[:-4]+"/"+dstDir+"/"+"2018")
    shutil.move(os.path.join(srcDir, dst, dstDir))         

错误:shutil.move(os.path.join(srcDir,dst,dstDir)) TypeError:move()缺少1个必需的位置参数:'dst'

2 个答案:

答案 0 :(得分:0)

您正在致电的AFAICT shutil.move(os.path.join(srcDir, dst, dstDir)) 没有to。 根据文档,您需要有一个fromto文件夹。 https://docs.python.org/3/library/shutil.html#shutil.move

我想您的想法是以某种方式创建一个包含dstsrc的字符串:

dst = (srcDir+"/"+file[:-4]+"/"+dstDir+"/"+"2018")

您真正想要的是这方面的东西:

dst_dir = dstDir+"/"+"2018"
src_dir = srcDir+"/"+file[:-4]
shutil.move(src_dir,dst_dir)

以上代码仅用于演示。 如果这不起作用,您可以treels -la举例说明您的srcdir和dstdir的一小部分,我们可以解决一些问题。

答案 1 :(得分:0)

@nmanh 我设法解决了。感谢您提出问题以使用src和dst创建字符串。删除字符串后,我进行了一些调整,但发现代码中的“文件”过多。我必须将其中两个设为“ file1”,并在src和dst之间的shutil.move中添加一个逗号。 再次感谢

import os
import shutil


srcDir = r'C:\Complete'
#print (srcDir)
dstDir = r'C:\Python27\end_dir'
dirList = os.listdir(srcDir)
for file in dirList:
    fp = [f for f in dirList if ".pdf" in f] #list comprehension to iterate task 
    (flat for loop)
for file in fp:
    if ' ' in file: #removing space in some of pdf names noticed during fp print
    file1 = file.split(' ')[0]# removing space continued
else:
    file1 = file[:-4]# removing .pdf
    final = dstDir+"\\"+file1+"\\2018"
    print (srcDir+"\\"+file1+" "+final)
shutil.move(srcDir+"\\"+file,final)