选择性复制-自动完成无聊的工作

时间:2018-10-02 15:53:38

标签: python python-3.x os.walk

我的代码中的os.walk()函数出现问题。

#! /usr/bin/env python3
# selectiveCopy.py - walks through a folder and copies all pdf files
# and puts them in a new pdf only folder

import os, shutil

def selectiveCopy(folder, destination):

    #walks through folder using os.walk(folder)
    for foldername, subfolders, filenames in os.walk(folder):
        print('in os.walk() for ' + folder)
        for filename in filenames:
            # select files with pdf ending
            if filename.endswith('.pdf'):
                print('Copying %s from %s to %s...' % (
                    filename, foldername, destination))
                #shutil.copy(os.path.join(foldername,filename), destination')
    #adds files with folder.endswith('.pdf') to new folder

selectiveCopy('./folder1',
              './folder1/pdf_Folder')

当我运行代码时,它永远不会到达第一个打印语句,向我显示它实际上在os.walk函数中。我不知道是什么问题。任何帮助表示赞赏。我使用的实际文件夹和目的地是绝对路径,而不是下面示例中的相对路径

2 个答案:

答案 0 :(得分:0)

所以,我要做的就是在文件夹和目标文件路径的末尾添加一个“ /”,现在它可以正常工作了。如果有人遇到此问题,请先尝试。不知道为什么它仅基于此而起作用,但是确实如此。

答案 1 :(得分:0)

由于信誉低于50(目前)而无法发表评论。

是的,您必须在文件路径之前添加一个/,因为这是macOS中文件路径的工作方式。如果您已经注意到,则您的根目录如下:/Users/...。不是这样的:Users/...