使用Python重命名pdf文件目录几乎可以正常工作

时间:2017-01-17 22:36:51

标签: python rename batch-rename

我一直试图添加" Q3"到一个文件夹中的89个pdf文件的开头。我已设法通过提交的解决方案获得结果HERE

这可以工作,但只有大约10-15个文件才会停止,它会出现各种错误,而且没有定义的顺序意味着每次大约10-15个不同。我要么收到" FileNotFoundError:[WinError 2]系统找不到指定的文件:"或" PermissionError:[WinError 32]进程无法访问该文件,因为它正由另一个进程使用:"

我理解" permissionserror"是因为我正在处理和运行的.py文件与pdf文件位于同一目录中,因此它正在运行此文件。但是在上面的链接解决方案中建议将它放在同一目录中以解决WinError2,在此之前它不会做任何事情。

*代码的第一部分是删除一些显示的不需要的文件,这些文件可能与问题

无关
import os
my_dir = "DIRECTORY OF PDF FILES"
for fname in os.listdir(my_dir):
    if fname.startswith('Copy') or fname.startswith('SxDI'):
        os.remove(os.path.join(my_dir, fname))

for fname in os.listdir(my_dir):
    os.rename(fname, "Q3" + fname)

1 个答案:

答案 0 :(得分:0)

看起来你正在改变你正在迭代的列表。

尝试:

files_to_rename = [fname in os.listdir(my_dir) if not (fname.startswith('Copy') or fname.startswith('SxDI'))]

for fname in files_to_rename:
    os.rename(fname, "Q3" + fname")

这是未经测试的,但我们的想法是先获取您需要更改的所有内容的名称,然后再进行更改。