用于更改文件夹名称的Python脚本

时间:2011-12-02 20:03:21

标签: python

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

有任何建议或提示吗?

我现在拥有的:

083011-HalloweenBand
090311-ViolaClassRecital
090411-JazzBand

我想要的是什么:

110830-HalloweenBand
110903-ViolaClassRecital
110904-JazzBand

由于

3 个答案:

答案 0 :(得分:1)

假设脚本与您要重命名的文件位于同一目录中,并且您已经拥有要重命名的文件列表,则可以执行以下操作:

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

答案 1 :(得分:0)

有一个Q& A,其中包含有关使用Python的traversing directories的信息,您可以修改这些信息来执行此操作。关键方法是walk(),但您需要将适当的调用添加到rename()

作为初学者,最好在尝试更改目录名称之前先遍历目录并写出新的目录名称。在进行此更改之前,您还应该进行备份并通知可能关心此更改的任何人。

答案 2 :(得分: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 to gawk。

但该行正在做的是将目录列表传递给awk,它打印“mv”$ 0(行)和空格(FS =字段分隔符,默认为空格),然后是两个子字符串。

  

SUBSTR(S,C,N)。这将返回字符串 s 中的子字符串,从字符位置 c 开始,最大长度为 n 个字符。如果未提供 n ,则返回 c 的其余字符串。

最后这是用管道输送的。允许它被执行。这在ubuntu上没有问题,这个命令的变化我使用了很多。一个版本的awk(awk,nawk,gawk)应该在osx上使用,我相信使用bash