更改文件夹名称的Python脚本

2024-09-29 21:35:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在OSX上,我受够了我工作的标签系统。标签是mm/dd/yy,我认为它们应该是yy/mm/dd。有没有一种方法可以编写脚本来实现这一点?我对Python中的列表和如何更改字符的位置有一定的了解。在

有什么建议或建议吗?在

我现在所拥有的:

083011-HalloweenBand
090311-ViolaClassRecital
090411-JazzBand

我想要的:

^{pr2}$

谢谢


Tags: 方法脚本列表系统标签字符建议dd
3条回答

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

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

这里有一个关于使用Python的traversing directories的信息的问答,您可以通过修改来实现这一点。key方法是walk(),但您需要向rename()添加适当的调用。在

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

我知道你要的是python,但我会从shell开始。这是一个简单的单行线。在

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

我不使用osx,但我认为它是一个bashshell。您可能需要将bash重命名为sh,或将awk重命名为gawk。在

但这行代码所做的是将目录列表管道化到awk,awk将打印“mv”$0(行)和一个空格(FS=field separator,默认为space),然后是两个子字符串。在

substr(s,c,n). This returns the substring from string s starting from character position c up to a maximum length of n characters. If n is not supplied, the rest of the string from c is returned.

最后,这是通过管道连接到外壳的。允许它被执行。这在ubuntu和我经常使用的这个命令的变体上工作没有问题。awk(awk,nawk,gawk)的一个版本应该安装在osx上,我相信它使用bash

相关问题 更多 >

    热门问题