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

问题描述 投票:0回答:2

@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'

gae-python27
2个回答
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的一小部分,我们可以解决一些问题。


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)
© www.soinside.com 2019 - 2024. All rights reserved.