当前位置:首页 » Python爬虫 » python完成批处理文件

python完成批处理文件

169°c 2021年03月07日 08:02 Python爬虫 0条评论
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

本文实例为大家分享了python实现批处理文件的具体代码,供大家参考,具体内容如下

Windows下的bat, linux 下的shell 用来做批处理都很好用,可惜不通用
python ()来做就简单多了,不过一条条写代码来调用系统命令也够烦的了
程序员都很懒, 不愿做机械无谓的重复性工作, 干脆自己实现一个.

用法超级简单, 默认会执行一个自定义的 batch.json, 按顺序一条条执行其中的步骤

{"steps": 
 [
 {"step":"df -h","desc":"display disk space usage"},
 {"step":"date","desc":"display the current dater"},
 {"step":"time","desc":"display the current time"}
 ]
}

用法:

python !batch.py

当然也可以指定不同的步骤文件 , 例如

python batch.py xxx.json

运行结果以markdown形式输出, 例如

$ python ()batch.py
Usage: python !batch.py <batch_json_file>
note: execute the batch.json by default
# Execute batch.json begin
---------------------------

## Will execute 3 steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~
0. [df -h]: display disk space usage
1. [date]: display the current dater
2. [time]: display the current time

* 0. [df -h]: display disk space usage
Filesystem       Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1       233Gi 208Gi 24Gi 90% 54622825 6364694 90% /
devfs        329Ki 329Ki 0Bi 100%  

* 1. [date]: display the current dater
Thu Mar 3 22:50:21 CST 2016

* 2. [time]: display the current time

real 0m0.001s
user 0m0.000s
sys 0m0.000s

## Done the following steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~
0. [df -h]: display disk space usage
1. [date]: display the current dater
# Execute batch.json end.

python源代码如下, 希望有人能用得上

'''
 like bat file, execute the steps in batch.json 
'''
import os,sys,subprocess
import time,thread
import codecs
import json
from datetime import datetime
from subprocess import call
from pprint import pprint

def execute_json(json_file):
 print "# Execute {0} begin\n---------------------------".format(json_file)

 json_data=open(json_file)
 data = json.load(json_data)
 cnt = len(data['steps'])
 i = 0
 print "\n## Will execute {0} steps \n~~~~~~~~~~~~~~~~~~~~~~~~~~~".format(cnt)
 for i in range(0, cnt):
   print "{0}. [{1}]: {2}".format(i, data['steps'][i]['step'], data['steps'][i]['desc'])

 #pprint(data)
 #print("cnt=", cnt)
 for i in range(0, cnt):
  cmd = data['steps'][i]['step']
  desc = data['steps'][i]['desc']
  print "\n* {0}. [{1}]: {2} ".format(i, cmd, desc)

  if(cmd.startswith('cd')):
   cmd = cmd.replace("cd ", "")
   os.chdir(cmd)
  else:
   ret = os.system(cmd)
   if(ret != 0):
    print "Encounter error of step {0}. {1}, error code={2}".format(i, cmd, ret)
    break

 print "\n## Done the following steps\n~~~~~~~~~~~~~~~~~~~~~~~~~~~"
 for j in range(0, i):
  print "{0}. [{1}]: {2}".format(j, data['steps'][j]['step'], data['steps'][j]['desc']) 
 json_data.close()
 print "# Execute {0} end.".format(json_file)

if __name__ == "__main__":
 argc = len(sys.argv)
 step_file = 'batch.json'
 if( argc > 1):
  idx = 1
  while(idx < argc):
   step_file = sys.argv[idx]
   execute_json(step_file)
   idx = idx + 1
 else:
  print "Usage: python {0} <batch_json_file>".format(sys.argv[0])
  print "note: execute the batch.json by default"
  execute_json(step_file)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python学习网

欢迎阅读本文,希望本文对您有所帮助!

本文链接:http://www.cqrxzs.com/2755.html

版权声明:本文为原创文章,版权归 雨凡教育 所有,欢迎分享本文,转载请保留出处!

百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!

评论(0) 赞助本站

发表评论:


【顶】 【踩】 【好】 【懵】 【赞】 【表情】

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

推荐阅读
04月21日

python完成猜数字游戏

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 4515次

表明: 本例取材于《Python编程快速上手》。事例非常简单我不多讲了 立即上代码,给入门python练习用。 让你6次机遇猜对一个事先转化成好的1-20中间的整数。遮盖一下知识要点: if语句 操纵句子 random涵数 载入输入 错误处理 代码: """ 猜数字 """ from random import * secretNumber = randint(1, 20) # print(secretNumber) print('猜一个1-20中间的整数。') pri...

04月21日

Python pip 安装与应用(安装、升级、删除)

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 4205次

pip 是 Python 包可视化工具,该专用工具出示了对Python 包的搜索、下载、安装、卸载掉的作用。 pip检验升级 命令:pip list –outdated pip升级包 命令:pip install --upgrade packagename pip卸载包 命令:pip uninstall packagename pip -i 和 -U 主要参数 事例: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple...

04月20日

python集合的创建、添加及删除操作示例

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 342次

文中案例叙述了python集合的建立、加上及删掉实际操作。共享给大伙儿供大伙儿参照,实际以下: 集合时混乱可变的编码序列,集合中的原素放到{}内,集合中的原素具备唯一性。 集合中只有包含数据、字符串数组、元组等不可变的种类数据信息(换句话说可hach),而不可以包含列表、字典、集合等可变的种类数据信息 1.集合的建立 方式一:把集合立即取值给一个自变量 >>> num={1,2,3,4} 方式二:应用range目标 >>> a=set(range(...

04月20日

python的命名规则知识点总结

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 345次

python命名标准 命名设计风格 python几类不一样命名设计风格 骆驼峰式命名法(WjW) 混合式教学命名法(wjWj) 大写(WJWJWJ)或大写加下划线(WJWJWJ) 作为前缀(wjing)或后缀名(ingwj)下划线,有时候双下划线 变量 python变量分成: (1)常量 (2)公有制和独享变量 1.常量 常量全局性变量,应用大写加下划线。特定的变量表明一个常标值。 BASE_DIR = os.path.dirname(os.path.dirname(os.path.absp...

04月19日

golang生成指定位数的随机数的方法

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 319次

1.随机数 随机数,是应用一个可预测性的优化算法推算出来随机数序。在软件开发中常常必须造成随机数,如随机数短信验证码登录、做为唯一真实身份标志数据信息这些。 2.rand库 golang中造成随机数关键有两个包,分别是“math/rand”和“crypto/rand”。 “math/rand”的rand包完成了伪随机数生成器。 "crypto/rand"的rand包完成了用以加解密的更安全性的随机数生成器。 3.生成特定十位数随机数 以生成六位随机数为例子 package main impo...

04月19日

Python3完成zip分卷压缩过程解析

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 330次

应用zipfile库 查询 官方网中文文档 利用 Python 缩小 ZIP 文档,大家第一反应是应用 zipfile 库,殊不知,它的官方网文档中却确立标明“此控制模块现阶段不可以解决分卷 ZIP 文档”,(⊙﹏⊙) 瞎折腾历经 翻边了Google、CSDN、Stackoverflow等服务平台均找不到解决方法,最可靠的是启用外界解压程序完成分卷压缩的作用。可是,怎样不借助外界程序代码这一作用呢?? 因此,只有自身渐渐地造轮子。看见 ZIP 格式房地产商留有的文档 ZIP File Form...

04月19日

Django之应用celery和NGINX生成静态页面完成性能优化

发布 : | 分类 : Python爬虫 | 评论 : 0人 | 浏览 : 298次

性能优化原理: 当我们要给client浏览器返回一个页面时,我们需要去数据库查询数据并将数据和基本页面模板渲染形成页面返回给客户端,但如果每一个用户访问时都去查询一次首页的的数据时,当日访问量很大时那么无疑会给数据库查询带来很大的性能问题。为了解决这个问题,我们可以给未登录用户返回一个早就渲染好的静态首页(给已登录的用户返回一个调用缓存数据和个人数据渲染的页面),这样就可以提高网站的性能了。 使用celery生成静态首页 生成静态页面原理: 在一个为静态首页准备的基础模板之上,获取数据,使用d...

您好,欢迎到访网站!
  查看权限