使用python脚本执行系统命令

最近在弄验证码识别小工具,下了一大堆数据集,要给每个目录分类改名,作为一个以编程为信仰的人,怎么能手动一个一个重命名呢?!为此我想起了学习Unix时的shell编程。。捣鼓了半天,一会是$忘记添加,一会是数组的奇葩表达。。总而言之真的用不来shell编程,最后想了想还是python以脚本语言著称,写这种简单的系统脚本应该是易如反掌吧~说干就干,我拿出了压箱底的Python CookBook,这真是本好书啊,很多python的奇淫巧技都能在这本书上找到较为系统规范的讲解。下面就介绍一下我是怎么解决问题的了。

下载的图片分类大概是这样的
这里写图片描述

每个文件夹代表一类图片,比如说Sample037对应字母a等等。
我的目的就是将每个文件夹名称改为对应的字母,说起来简单做起来…如果你熟悉的话还是很简单。。这里主要利用了python的subprocess库,

import subprocess

subprocess.call(['netstat','-a'])

像这样就能执行一些系统调用,函数会将命令传给底层的os.execve()系统调用。如果想由shell终端来解释命令,可以加上shell=True参数,但是如果如果传入的命令是依赖于用户输入德华,这样做有风险,可能会让恶意用户有可乘之机。

import subprocess

subprocess.call(['netstat','-a'],shell=True)

最后简单的调用mv命令就能很快的将文件夹批量改名。需要注意Windows系统下该文件夹名命令为ren。


alphas = "abcdefghijklmnopqrstuvwxyz"
for i in range(37,63):
    dirName = r'我的目录\Sample0'+str(i)
    newName = str(alphas[i-37])
    print ("oldName:%s,newName : %s"%(dirName,newName))
    subprocess.call(['mv',dirName,newName],shell=True)

最后就完成了目的~
这里写图片描述

小结

虽然做的事情很简单,但是这让我对python方便快捷的特性有了更深的认识,再也不想看到shell脚本了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值