2011-12-02 59 views
2

我在OS X上,我厌倦了我工作的标签系统。标签是mm/dd/yy,我认为它们应该是yy/mm/dd。有没有办法编写一个脚本来做到这一点?我理解了Python的一些列表以及如何改变字符的位置。更改文件夹名称的Python脚本

任何建议或提示?

我现在拥有的一切:

083011-HalloweenBand 
090311-ViolaClassRecital 
090411-JazzBand 

我想要什么:

110830-HalloweenBand 
110903-ViolaClassRecital 
110904-JazzBand 

感谢

+0

使用'os.walk'从文件系统层次结构中的某个点开始访问所有目录文件夹,并将任何违规你遇到的。 – martineau

回答

0

有问答& A和与Python上traversing directories信息,你可以修改做这个。关键方法是walk(),但您需要将相应的呼叫添加到rename()

作为一个初学者,最好的办法是在尝试更改目录名称之前遍历目录并写出新的目录名称。你也应该做一个备份,并在做这件事之前通知任何可能关心这个改变的人。

1

假设脚本是在同一目录下,你要重命名的文件,并且您已经有要重命名的文件列表,你可以这样做:

for file in rename_list: 
    os.rename(file, file[4:6] + file[:2] + file[2:4] + file[6:]) 
0

我知道你问对于python,但我会从shell中完成。这是一个简单的班轮。

ls | awk '{print "mv " $0 FS substr($1,5,2) substr($1,1,4) substr($1,7) }' | bash

我不使用OSX,但我认为这是一个bash shell的。您可能需要将bash重命名为sh,或awk才能使用gawk。

但是该行所做的是将目录列表管道输出到打印“mv”$ 0(行)和空格(FS =字段分隔符,默认为空格)的awk,然后是两个子字符串。

substr(s,c,n)。这返回字符串的子字符串s从字符位置c开始,最大长度为n字符。如果没有提供n,则返回c的字符串的其余部分。

最后这是通过管道连接到外壳。允许它被执行。这工作没有问题在Ubuntu和这个命令的变化,我用了很多。 awk(awk,nawk,gawk)的版本应该放在osx上,我相信使用bash

相关问题