用新文件名替换python中的文件名

时间:2011-05-15 17:01:48

标签: python linux rename

  

可能重复:
  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变量。这是真的?如果不是,我肯定会很感激反馈,尽管到目前为止看起来工作正常。

1 个答案:

答案 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 + "'"