我在OS X上,我厌倦了我工作的标签系统。标签是mm / dd / yy,我认为它们应该是yy / mm / dd。有没有办法写一个脚本来做到这一点?我理解了一些带有列表的Python,以及如何更改字符的位置。
有任何建议或提示吗?
我现在拥有的:
083011-HalloweenBand
090311-ViolaClassRecital
090411-JazzBand
我想要的是什么:
110830-HalloweenBand
110903-ViolaClassRecital
110904-JazzBand
由于
答案 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