可能重复:
Rename Files in Python
嘿所有,我正在用Python创建一个脚本来包装大量与批量图像编辑相关的操作系统命令,并且大部分任务都已完成,但是我对一项任务感到困惑(看似简单的任务)。
当我扫描扫描仪上的图片时,我得到一个与此类似的文件名:
201105151110_0001A.jpg
其中第一部分是某种时间戳(我想替换它),但是我想把它变成一个输入变量(我或其他用户可以将它粘贴到命令行中,如果我是使用另一个扫描仪,其中文件名结构可能不同.0001A表示第一张照片/文档的正面,我想保留文件名的那一部分。
我设置了三个变量:
old_prefix = input(bcolors.PROMPT + "Enter the prefix to replace: " + bcolors.ENDC)
new_prefix = input(bcolors.PROMPT + "Enter the new prefix: " + bcolors.ENDC)
working_directory
working_directory是代码的另一部分的变量,它是图像所在的位置。颜色部分是这样我可以着色输出并使其更容易阅读。当我处理它时,目录中会有1-1000个文件。
此脚本将在Linux上运行。
谢谢!
--- --- EDIT
很抱歉浪费你的时间,我似乎忽略了Kiril Kirov在这里链接的问题中的一些信息,我提出的代码,其工作原理是:
elif retouch_option == "06":
print(" ")
old_prefix = input(bcolors.PROMPT + "Enter the prefix to replace: " + bcolors.ENDC)
new_prefix = input(bcolors.PROMPT + "Enter the new prefix.......: " + bcolors.ENDC)
print(bcolors.OUTPUT + " ")
for fname in glob(working_directory + "*.jpg"):
keeper = fname[-9:]
print("Renaming image", keeper)
os.rename(fname, fname.replace(old_prefix, new_prefix))
我认为它应该是安全的,因为它只是用new_prefix变量替换old_prefix变量。这是真的?如果不是,我肯定会很感激反馈,尽管到目前为止看起来工作正常。
答案 0 :(得分:2)
类似的东西:
sep = '_'
try:
prefix,keeper = filename.split(sep)
except: # filename does not match desired structure
print "not processed: no '" + sep + "' in '"+ filename + "'"
else: # split succeeded:
if prefix == old_prefix:
filename = new_prefix + sep + keeper
# more processing...
else:
print "prefix doesn't match in '" + filename + "'"