为什么Python文件夹排序器脚本给了我错误而无法工作?
因此,我尝试使用shutil.copy和os.remove,运行时不断出现错误。有什么建议吗?我试图让它通过一个文件夹“下载”和排序的所有文件按类型到单独的文件夹为什么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 =
#!/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不是元组的属性?我以为列表是字典而不是元组?