gpt4 book ai didi

python - 如何批量重命名文件?

转载 作者:行者123 更新时间:2023-12-01 01:21:18 26 4
gpt4 key购买 nike

我有数百个这种形式的文件,只有一个文档编号:

28OPV-000333.000-A-001_00.pdf 
28OPV-000333.000-A-002_00.pdf

我想为所有这些添加描述。我已经在txt中准备好了所有新名字。如何使用 Python 批量重命名它们?

期望的输出:

28OPV-000333.000-A-001_equipment list.pdf
28OPV-000333.000-A-002_master tag.pdf

 

import os
path = "D:\\TEST\\"
newnames = open("d:\\newnames.txt")
lines = newnames.readlines()
for file in os.listdir(path):
for line in lines:
if line[0:22]==file[0:22]:
os.renames(path+file,path+line)
else:
break

我是编程新手,上面的代码抛出如下错误,我无法找到问题所在。

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'D:\\TEST\\28OPV-000333.000-B-555_0000.PDF' -> 'D:\\TEST\\28OPV-000333.000-B-555_HAHA.PDF\n'

Process finished with exit code 1

最后在下面 friend 的指导下,得到了我想要的结果。我将更正后的代码放在下面以供将来引用。

import os,sys
path = "D:\\2 BA\\3 TP TQ Vendor drawings\\siemens\\"
newnames = open("d:\\newnames.txt")
lines = newnames.read().splitlines()
for file in os.listdir(path):
for line in lines:
if line[0:22]==file[0:22]:
try:
os.renames(path+file,path+line)
except Exception:
pass

或下面的代码

import os
path = "D:\\TEST\\"
newnames = open("d:\\newnames.txt")
lines = newnames.readlines()
for file in os.listdir(path):
for line in lines:
if line[0:22]==file[0:22]:
try:
os.renames(path+file,path+line.strip())
except Exception:
pass

最佳答案

注意后面有一个\n。 Windows 上的文件名是非法的。尝试使用 lines = newnames.readlines().strip()

screenshot

关于python - 如何批量重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53808422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com