在cmd(Windows)或Python中重命名多个文件



我正在尝试将名称为p01p02等名称的470个文件的列表重命名为每个文件的特定名称。所以我有一个按正确顺序排列的这些文件名的列表(.txt 或 .xls(,但我无法找出一个 for 循环来批量重命名它。
我已经检查了这个论坛和谷歌上的其他线程,但无法得到我需要的结果。
希望有人对此有解决方案...Python 或 cmd 窗口都是可能的。

简而言之:

p01.pdf --> 布拉布拉.pdf

p02.pdf --> 其他文本.pdf
....

Python 3

  1. 首先将旧文件名和新文件名导出到filenames.txt文件。其内容的格式应如下所示old_filename.pdf,new_filename.pdf

    p01.pdf,blabla.pdf
    p02.pdf,foobar.pdf
    
  2. 然后在同一目录中创建一个rename.pypython 文件。

    该脚本从该文件中读取每一行,并使用os.rename(src, dest)相应地重命名文件:

    import os
    with open("filenames.txt", mode="r") as open_file:
    filenames = open_file.readlines()
    for filename in filenames:
    separator_index = filename.find(",")
    old_filename = filename[:separator_index]
    new_filename = filename[separator_index + 1:] # +1 to exclude the comma from the new filename
    os.rename(old_filename, new_filename)
    
  3. 现在,要执行脚本,请在该目录中打开cmd.exe并键入:

    $ python3 rename.py
    

不同的路径

如果您的文件不都在同一个目录中,只需将它们的路径添加到filenames.txt,如下所示:

path/to/old_filename.pdf,path/to/new_filename.pdf

专业提示:导航到Windows资源管理器中所有文件所在的文件夹,按CTRL+L突出显示导航栏,编写cmd并通过按Enter进行确认。cmd.exe现在应该使用已设置的文件夹的正确路径直接打开。

对于批处理解决方案,请创建文本文件并添加用逗号分隔的名称,我们将其称为filenames.txt

p01.pdf,Blabla.pdf
p02.pdf,Othertext.pdf
...

然后作为批处理文件执行:

for /f "tokens=1,2 delims=," %%i in (filenames.txt) do ren "%%i" "%%j"

或直接从控制台 (cmd.exe( 这是完全相同的,我们只使用单%而不是双%%

for /f "tokens=1,2 delims=," %i in (filenames.txt) do ren "%i" "%j"

最新更新