Python shutil move 合并文件

Python shutil move merges files

嘿,我正在尝试使用 shutil move 函数以增量方式重命名目录中的一堆文件。例如,将文件 a.txt、b.txt、c.txt 重命名为 1.txt、2.txt、3.txt 等。现在,当我调用 shutil.move 函数时,它将获取所有文件并只生成一个“1”文件。奇怪的是,当我打印出我创建的新路径时,它会很好地增加路径。

这是我的代码:

absWorkingDir = os.path.abspath('.')

for file in os.listdir('.'):
    newFile = os.path.join(absWorkingDir, file)
    newPath = os.path.join(absWorkingDir, showName + " - s" + seasNum + \
                           "e%02d" % (os.listdir('.').index(file) + 1,))

    print(newPath)
    shutil.move(newFile, newPath)

感谢任何帮助。

根据说明,这应该可以帮助您:

#!/usr/bin/env python

import os
import shutil

skip = ['py', 'pyc']
files = [f for f in os.listdir('.') if f.split('.')[-1] not in skip]
files.sort()

showName = "ASD"
seasNum = 1

episode = 1
for f in files:
    ext = f.split('.')[-1]
    shutil.move(f, "%s-S%02de%02d.%s"%(showName, seasNum, episode, ext))
    episode+=1

注意列表理解中的条件。

用法:

➜  ls
a.txt  b.txt  c.txt  d.avi  move.py
➜  python move.py 
➜  ls
ASD-S01e01.txt  ASD-S01e02.txt  ASD-S01e03.txt  ASD-S01e04.avi  move.py