使用python脚本执行系统命令
2017-03-03 12:32
190 查看
最近在弄验证码识别小工具,下了一大堆数据集,要给每个目录分类改名,作为一个以编程为信仰的人,怎么能手动一个一个重命名呢?!为此我想起了学习Unix时的shell编程。。捣鼓了半天,一会是$忘记添加,一会是数组的奇葩表达。。总而言之真的用不来shell编程,最后想了想还是python以脚本语言著称,写这种简单的系统脚本应该是易如反掌吧~说干就干,我拿出了压箱底的Python CookBook,这真是本好书啊,很多python的奇淫巧技都能在这本书上找到较为系统规范的讲解。下面就介绍一下我是怎么解决问题的了。
下载的图片分类大概是这样的
每个文件夹代表一类图片,比如说Sample037对应字母a等等。
我的目的就是将每个文件夹名称改为对应的字母,说起来简单做起来…如果你熟悉的话还是很简单。。这里主要利用了python的subprocess库,
像这样就能执行一些系统调用,函数会将命令传给底层的os.execve()系统调用。如果想由shell终端来解释命令,可以加上shell=True参数,但是如果如果传入的命令是依赖于用户输入德华,这样做有风险,可能会让恶意用户有可乘之机。
最后简单的调用mv命令就能很快的将文件夹批量改名。需要注意Windows系统下该文件夹名命令为ren。
最后就完成了目的~
下载的图片分类大概是这样的
每个文件夹代表一类图片,比如说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脚本了。。。相关文章推荐
- mac 系统下 使用 crontab 命令设置定时执行脚本,定时书写规范
- python基础之使用os.system来执行系统命令
- windows linux 使用python执行系统命令并将结果保存到变量
- python基础之使用os.system来执行系统命令
- 使用Perl或者Python加载Praat脚本在DOS命令窗口直接执行
- python基础之使用os.system来执行系统命令
- PHP通过系统命令执行Python脚本
- python基础之使用os.system来执行系统命令
- Python执行系统命令的方法 os.system(),os.popen(),commands
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- 使用source与点命令执行Linux shell脚本的体会
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- PHP执行linux系统命令的常用函数使用说明
- Python执行系统命令的方法 os.system(),os.popen(),commands
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- [转]Python执行系统命令的方法 os.system(),os.popen(),commands
- 使用java执行linux系统命令
- python 执行系统命令
- 使用expect脚本登录到root账号并执行命令