"批量"在Python中一次重命名一个文件

时间:2014-08-25 06:26:33

标签: python list

我想执行一种“手动”批处理操作,其中Python查看目录,查看文件列表,然后一次一个地自动显示它们并等待用户输入,然后再转到下一个文件。我将假设文件具有相对随机的名称(Python选择显示它们的顺序并不重要)。

所以,我可能会pic001.jpgmyCalendar.docx。有没有办法让Python通过这些(以任何顺序)移动,以便我可以手动为每个人添加一些东西?例如,它可能看起来像

Please type a prefix for each of the following:


myCalendar.docx:

当我输入“2014”时,该文件将变为2014_myCalendar.docx。然后Python继续说

Please type a prefix for each of the following:


myCalendar.docx: 2014
... myCalendar.docx renamed to 2014_myCalendar.docx

pic001.jpg: 

然后我可以将它disneyland_pic001.jpg

我知道如何重命名文件,浏览目录等。我只是不知道如何让Python循环遍历某个目录中的每个文件,一次一个,让我修改每个文件。我认为如果每个文件都被编号,这对于循环来说真的很容易,但是对于我正在尝试做的事情,我不能认为它们会是。

提前谢谢。

此外,如果您能指出一些可能对我有帮助的教程或文档,我也会感激。我已经在几个标签中打开了http://docs.python.org,但作为一个相对较新的Python和一般编程的人,我发现他们的语言有时候会让我有点过头。

1 个答案:

答案 0 :(得分:0)

像这样(未经测试):

DIR = '/Volumes/foobar'

prefix = raw_input('Please type a prefix for each of the following: ')

for f in os.listdir(DIR):
    path = os.path.join(DIR, f)
    new_path = os.path.join(DIR, '%s%s' % (prefix, f))
    try:
        os.rename(path, new_path)
        print 'renamed', f
    except:
        raise