Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Python文件夹排序器脚本给了我错误而无法工作?_Python_Sorting_Terminal_Runtime Error - Fatal编程技术网

为什么Python文件夹排序器脚本给了我错误而无法工作?

为什么Python文件夹排序器脚本给了我错误而无法工作?,python,sorting,terminal,runtime-error,Python,Sorting,Terminal,Runtime Error,因此,我尝试使用shutil.copy和os.remove,运行时不断出现错误。有什么建议吗?我试图让它通过一个文件夹“下载”和排序的所有文件按类型到单独的文件夹 #!/bin/python import os, shutil path = raw_input("Enter your folder you would like sorted: ") def searchFolder(path): if os.path.exists(path): dirList =

因此,我尝试使用shutil.copy和os.remove,运行时不断出现错误。有什么建议吗?我试图让它通过一个文件夹“下载”和排序的所有文件按类型到单独的文件夹

#!/bin/python

import os, shutil

path = raw_input("Enter your folder you would like sorted: ")

def searchFolder(path):

    if os.path.exists(path):
        dirList = os.listdir(path)

        for filename in dirList:
            if  filename.endswith(".jpg") or filename.endswith(".raw") or filename.endswith(".dng") or filename.endswith(".psd"):
                if not os.path.exists(path + "Photos"):
                    os.makedirs(path + "Photos")
                os.rename(path + filename, path + "Photos/" + filename)
            elif ".docx" in filename or ".doc" in filename:
                if not os.path.exists(path + "Word Docs"):
                    os.makedirs(path + "Word Docs")
                os.renames(path + filename, path + "Word Docs/" + filename)
            elif ".pptx" in filename:
                if not os.path.exists(path + "Powerpoints"):
                    os.makedirs(path + "Powerpoints")
                os.renames(path + filename, path + "Powerpoints/" + filename)
            elif ".zip" in filename:
                if not os.path.exists(path + "Zip Files"):
                    os.makedirs(path + "Zip Files")
                os.renames(path + filename, path + "Zip Files/" + filename)
            elif ".dmg" in filename:
                if not os.path.exists(path + "Disk Images"):
                    os.makedirs(path + "Disk Images")
                os.renames(path + filename, path + "Disk Images/" + filename)
            elif ".mp3" in filename:
                if not os.path.exists(path + "Music"):
                    os.makedirs(path + "Music")
                os.renames(path + filename, path + "Music/" + filename)
            elif ".pdf" in filename:
                if not os.path.exists(path + "Pdf"):
                    os.makedirs(path + "Pdf")
                os.renames(path + filename, path + "Pdf/" + filename)
            elif ".cpp" in filename:
                if not os.path.exists(path + "C++"):
                    os.makedirs(path + "C++")
                os.renames(path + filename, path + "C++/" + filename)
            elif ".psd" in filename:
                if not os.path.exists(path + "Photoshop"):
                    os.makedirs(path + "Photoshop")
                os.renames(path + filename, path + "Photoshop/" + filename)
            elif ".dng" in filename:
                if not os.path.exists(path + "Photos/Raw Photos"):
                    os.makedirs(path + "Photos/Raw Photos")
                os.rename(path + filename, path + "Photos/Raw Photos/" + filename)
            elif not "." in filename:
                if not os.path.exists(path + "Folders"):
                    os.makedirs(path + "Folders")
                os.renames(path + filename, path + "Folders/" + filename)
            else:
                if not os.path.exists(path + "Other"):
                    os.makedirs(path + "Other")
                os.rename(path + filename, path + "Other/" + filename)

        print "Sorting Complete"
    else:
        print "Folder Does not exist"

searchFolder(path)

第7~9行可能来自其他漫画。:-)

这是你的pythonified代码,你可能会更容易发现错误

import os
def searchFolder(path):
    for filename in os.listdir(path):
        for ext, category in {('.jpg', '.raw'): 'Photos',
                              ('.doc', '.docx'): 'Word Docs',
                              '.pptx': 'Powerpoints',
                              '.zip': 'Zip Files',
                              '.dmg': 'Disk Images',
                              '.mp3': 'Music',
                              '.pdf': 'Pdf',
                              '.cpp': 'C++',
                              '.psd': 'Photoshop',
                              '.dng': 'Photos/Raw Photos'}.items():
            if filename.endswith(ext): break
        else: category = 'Other' if '.' in filename else 'Folders'
        os.renames(path + filename, path + category + '/' + filename)
searchFolder(input("Enter your folder you would like sorted: "))

首先:
未定义目的地
。(在
shutil.copy(文件,目的地)
)很抱歉,这些行不应该在那里,所以我删除了它们。@hiro Progator@veky如果不存在crear bes目录,该目录会存在吗?例如,如果没有用于存放照片的文件夹,如果找不到该文件夹,是否会创建用于存放照片的文件夹?我还以为Python中不需要括号?文档说会的:而且,我不知道你所说的“括号”是什么意思-我通常使用[]的名称,我在上面的代码中也不使用它们。对不起,我的意思是大括号{}你不需要它们来分隔语句集,但是你确实需要它们来显示字典,比如{.zip':'zip Files','.cpp':'C++'}。为什么它说.endswith不是元组的属性?我以为列表是字典而不是元组?