无法将文件重命名为自定义名称

时间:2019-02-02 12:47:11

标签: python python-3.x directory file-rename

无法重命名位于桌面文件夹中的旧文件。 item.pdfitem1.pdfitem2.pdf共有三个文件。我现在想做的是将这些文件重命名为new_item.pdfnew_item1.pdfnew_item2.pdf

我尝试使用以下脚本:

import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    os.rename(item,"new_name"+".pdf")

执行上述脚本会引发以下错误。文件夹地址准确无误:

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'item.pdf' -> 'new_name.pdf'

如何将这三个文件item.pdfitem1.pdfitem2.pdf重命名为new_item.pdfnew_item1.pdf和{{1} }中的文件夹?

2 个答案:

答案 0 :(得分:1)

尝试一下:

import os
import re

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    match = re.search(r'\d+$', item)
    endnum = ""
    if match:
      endnum = match.group()
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(endnum)))

或者,如果您不想使用re

import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    new_name = item.replace('item', 'new_item')
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(new_name)))

答案 1 :(得分:0)

您需要在os.rename中指定文件的完整路径。

类似的东西:

for item in filepath:
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_item.pdf"))

或将当前工作目录更改为文件所在的目录:

os.chdir("/your/file/path")

然后运行您的代码。

另请参阅https://docs.python.org/2/library/os.html#os.rename