我正在尝试将名称为p01
、p02
等名称的470个文件的列表重命名为每个文件的特定名称。所以我有一个按正确顺序排列的这些文件名的列表(.txt 或 .xls(,但我无法找出一个 for 循环来批量重命名它。
我已经检查了这个论坛和谷歌上的其他线程,但无法得到我需要的结果。
希望有人对此有解决方案...Python 或 cmd 窗口都是可能的。
简而言之:
p01.pdf --> 布拉布拉.pdf
p02.pdf --> 其他文本.pdf
....
Python 3
-
首先将旧文件名和新文件名导出到
filenames.txt
文件。其内容的格式应如下所示old_filename.pdf,new_filename.pdf
:p01.pdf,blabla.pdf p02.pdf,foobar.pdf
-
然后在同一目录中创建一个
rename.py
python 文件。该脚本从该文件中读取每一行,并使用
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)
-
现在,要执行脚本,请在该目录中打开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"