救命啊!我在写一个脚本,通过移动具有特定扩展名的文件来组织我的桌面。它看起来很好用,但当我把它放在我的桌面上时,奇怪的事情发生了。在
所以我把所有的文件复制到动态创建的文件夹中,比如“pdf”和“IMAGES”,但由于某些原因,当我运行脚本时,它只创建文件,而不创建文件夹,并继续将文件存储在另一个文件中。在
我需要把这些人找回来,但我不知道该怎么办。顺便说一下,我用的是Windows7。下面是我的代码。任何帮助都将不胜感激。在
import shutil
import os
pwd = os.getcwd()
working_path = 'C:\\Users\\grayson\\Desktop'
wp = working_path
folders = {'pdf':'PDFS','img':'IMAGES'}
def main():
create_folders();
for d in os.walk(wp):
files = d[2]
break
print files
for filename in files:
order_file( filename )
def create_folders():
for fol in folders.keys():
fol_name = folders[fol]
if not os.path.isdir(fol_name):
os.mkdir(fol_name)
def order_file(fname):
split_name = fname.split('.')
exten = split_name[len(split_name)-1]
if exten == 'pdf':
shutil.move(wp + '\\' + fname, wp + '\\' + folders['pdf'])
elif exten == 'jpg' or exten == 'png' or exten == 'gif':
shutil.move(wp + '\\' + fname, wp + '\\' + folders['img'])
else:
print 'Sumin else'
main()
你没有以安全的方式创建目录。在
人们可以猜测,但也许你有一个文件称为PDFS等,从以前的尝试和目录没有创建。所以你一个接一个的把你所有的图片都改名为图片。。。没有退路。在
我希望你能提前备份。在
这是一个非常笨拙的脚本,用于将文件移动到已排序的目录中。但我猜出了什么问题。如果您没有使用
Desktop
作为当前的工作目录来运行它(这意味着您在运行脚本时不在该目录中),那么这些文件夹是在其他位置创建的。然后当你的文件开始移动时,目录不存在,所以它只是把它们作为新文件相互移动。在不幸的是,你无法逆转这种伤害。你唯一的希望就是你有备份。在
让我更详细地解释一下你剧本的一些部分。。。在
如果
pwd
与working_path
不同,则脚本中的所有内容都将出错。此外,您应该始终使用正斜杠,即使在windows上也是如此。它的有效性和路径构建更容易:working_path = 'C:/Users/grayson/Desktop'
文件夹创建部分:
^{pr2}$您不能确保这些目录实际上是在您的
working_path
变量下创建的。你可以这样写:你可能会把它保存在那里。它将把目录专门放在
Desktop
下,而不是从哪里运行脚本。在为了得到扩展名需要大量的输入。你本可以通过以下方式使之更简单:
最后,移动文件的部分:
您通过添加斜杠来构建路径,并且只在目录名中构建目标。如果该目录不存在,它将假定它是一个文件。生成的文件应具有特定的名称:
这样,如果目录不存在,它肯定会失败。在
相关问题 更多 >
编程相关推荐