有一段时间我一直在使用Oskar Liljeblad相当有用的file renaming utilities来移动和复制文件。但是,尽管该程序在大多数情况下都能正常工作,但它已经过几年没有更新,并且它不是Unicode兼容的 - 非ASCII字符被C转义字符串替换。这使得交互式移动/复制/重命名文件有时会产生真正的麻烦(即我有许多用西里尔文件名保存的文件)。
原理很简单:给程序一个要重命名或复制的文件列表,它会将你带入一个包含文件列表的编辑器,你编辑该列表,保存并退出,然后程序应用这些更改,有限的错误处理以捕捉常见案例。
我打算用Python 3重写他的程序,但我不完全确定如何去做,因为我想完全重新实现它们。我有一些想法,但将想法变成(工作)代码证明有些问题。正如我一直在考虑学习Python,我认为这将是一个不错的小项目。
有关从哪里开始的任何提示?
答案 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')