时间:2021-05-22
本文实例为大家分享了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.pyUsage: 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 usage1. [date]: display the current dater2. [time]: display the current time* 0. [df -h]: display disk space usageFilesystem 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 daterThu Mar 3 22:50:21 CST 2016* 2. [time]: display the current timereal 0m0.001suser 0m0.000ssys 0m0.000s## Done the following steps~~~~~~~~~~~~~~~~~~~~~~~~~~~0. [df -h]: display disk space usage1. [date]: display the current dater# Execute batch.json end.Python源代码如下, 希望有人能用得上
''' like bat file, execute the steps in batch.json '''import os,sys,subprocessimport time,threadimport codecsimport jsonfrom datetime import datetimefrom subprocess import callfrom pprint import pprintdef 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)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
批处理文件是无格式的文本文件,现在无盘清理基本都是靠它实现的因为简单实用下面就是方便大家怎样创建批处理文件的一简单批处理内部命令简介1.Echo命令打开回显或关
批处理文件中可引用的参数为%0~%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参;而替换形参的实参若超过了批处理文件中所
可以在批处理文件内的任何地方使用批处理参数,以提取有关环境设置的信息。Cmd.exe提供批处理参数扩展变量(%0到%9)。当在批处理文件中使用批处理参数时,%0
(批处理文件是由一个或一个以上的DOS命令及可执行命令组成的带有扩展名.BAT的文件。当用户以批处理文件名为命令时,DOS会自动依次执行文件中的命令。批处理文件
这里的参数是我们常见的%1、%2等,而非批处理中的变量。 批处理参数基本可以分为两类: 1、批处理文件本身的参数,如:某一批处理文件,文件名为:te