Python中的交互式重命名脚本

时间:2011-07-13 12:01:24

标签: python

有一段时间我一直在使用Oskar Liljeblad相当有用的file renaming utilities来移动和复制文件。但是,尽管该程序在大多数情况下都能正常工作,但它已经过几年没有更新,并且它不是Unicode兼容的 - 非ASCII字符被C转义字符串替换。这使得交互式移动/复制/重命名文件有时会产生真正的麻烦(即我有许多用西里尔文件名保存的文件)。

原理很简单:给程序一个要重命名或复制的文件列表,它会将你带入一个包含文件列表的编辑器,你编辑该列表,保存并退出,然后程序应用这些更改,有限的错误处理以捕捉常见案例。

我打算用Python 3重写他的程序,但我不完全确定如何去做,因为我想完全重新实现它们。我有一些想法,但将想法变成(工作)代码证明有些问题。正如我一直在考虑学习Python,我认为这将是一个不错的小项目。

有关从哪里开始的任何提示?

1 个答案:

答案 0 :(得分:2)

这听起来像是一个很棒的项目!您可能希望从shutil模块开始。您可能也对os.path模块感兴趣。

也许为了让你开始,这里有一个函数,它接受一个文件的路径并通过复制它并给它一个.bak扩展名来备份文件。

import os, shutil

def backup(path):
    if not os.path.exists(path):
        print "No such file:", path
        return
    try:
        shutil.copy(path, path + ".bak")
    except:
        print "There was an error when backing up", path

backup('/path/to/file')