Python 3.x 用于重命名文件并将其复制到新目录的脚本。

Python 3.x 用于重命名文件并将其复制到新目录的脚本。,python-3.x,python,Python 3.x,Python,嗨,我最近制作了这个脚本,用前缀和日期重命名我扫描的文件。它工作得很好,但是如果它能在当前目录中创建一个与第一个文件同名的目录,然后将所有扫描的文件移到那里,那就太好了。例如,第一个文件重命名为“截至2012年3月22日扫描0”,然后创建一个名为“截至2012年3月22日扫描0”的目录,路径为M:\Claire\Scanned As 22-03-2012 0,并将该文件放在其中 我很难想出最好的办法。提前谢谢 import os import datetime #target = input(

嗨,我最近制作了这个脚本,用前缀和日期重命名我扫描的文件。它工作得很好,但是如果它能在当前目录中创建一个与第一个文件同名的目录,然后将所有扫描的文件移到那里,那就太好了。例如,第一个文件重命名为“截至2012年3月22日扫描0”,然后创建一个名为“截至2012年3月22日扫描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

不太清楚你的要求。如果不重命名该文件,只将其放在目录下,则可以仅在示例的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

您可以查看helpos.renames。

看看问题在哪里?看来你知道怎么做,而且已经做了大部分。对不起,我可能应该说得更清楚些。我很难弄清楚如何用与文件相同的名称格式重命名文件夹,以及如何实际创建文件夹。