2012-03-22 145 views
0

嗨,我最近做了这个脚本重命名文件,我扫描工作的前缀和日期。它工作得很好,但是如果它能够在当前目录中创建一个与第一个文件同名的目录,那么将会很好,然后将所有扫描的文件移动到那里。例如。第一个文件被重命名为'扫描为22-03-2012 0',然后一个名为'扫描为22-03-2012 0'(路径为M:\ Claire \ Scanned As 22-03-2012 0)的目录是并将该文件放置在那里。将文件重命名并复制到新目录的脚本。

我很难找出最好的方法来做到这一点。提前致谢!

import os 
import datetime 
#target = input('Enter full directory path: ') 
#prefix = input('Enter prefix: ') 
target = 'M://Claire//' 
prefix = 'Scanned As At ' 
os.chdir(target) 
allfiles = os.listdir(target) 
count = 0 
for filename in allfiles: 
    t = os.path.getmtime(filename) 
    v = datetime.datetime.fromtimestamp(t) 
    x = v.strftime(' %d-%m-%Y') 
    os.rename(filename, prefix + x + " "+str(count) +".pdf") 
    count +=1 
+0

看看http://docs.python.org/library/shutil.html – 2012-03-22 09:33:45

+0

问题在哪里?似乎你知道如何去做,而且已经完成了大部分工作。 – Alfe 2012-03-22 10:19:41

+0

对不起,我应该已经更清楚了。我很难弄清楚如何重命名与文件具有相同名称格式的文件夹并实际制作文件夹。 – RedFred 2012-03-22 18:54:36

回答

0

不太清楚您的要求。如果不重命名文件,只能把它的目录下,然后你可以使用下面的代码(只有你的例子的for循环):

for filename in allfiles: 
    if not os.isfile(filename): continue 
    t = os.path.getmtime(filename) 
    v = datetime.datetime.fromtimestamp(t) 
    x = v.strftime(' %d-%m-%Y') 
    dirname = prefix + x + " " + str(count) 
    target = os.path.join(dirname, filename) 
    os.renames(filename, target) 
    count +=1 

您可以检查help(os.renames)

相关问题