欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)批處理文件

 更新時間:2020年07月28日 17:17:21   作者:fanyamin  
這篇文章主要為大家詳細介紹了python實現(xiàn)批處理文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)批處理文件的具體代碼,供大家參考,具體內容如下

Windows下的bat, linux 下的shell 用來做批處理都很好用,可惜不通用
用 Python 來做就簡單多了,不過一條條寫代碼來調用系統(tǒng)命令也夠煩的了
程序員都很懶, 不愿做機械無謂的重復性工作, 干脆自己實現(xiàn)一個.

用法超級簡單, 默認會執(zhí)行一個自定義的 batch.json, 按順序一條條執(zhí)行其中的步驟

{"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中的連接符(+、+=)示例詳解

    Python中的連接符(+、+=)示例詳解

    Python 中可使用 + 進行字符串的連接操作,這個相信大家都知道,其實Python中的連接符還有+=,下面這篇文章主要介紹了Python中的連接符(+、+=),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • pygame學習筆記(4):聲音控制

    pygame學習筆記(4):聲音控制

    這篇文章主要介紹了pygame學習筆記(4):聲音控制,本文講解了pygame.mixer啟動與初始化、播放聲音片段wav文件、播放mp3、wma、ogg音樂文件、控制音量、制作mp3播放器中遇到的問題等內容,需要的朋友可以參考下
    2015-04-04
  • python用來獲得圖片exif信息的庫實例分析

    python用來獲得圖片exif信息的庫實例分析

    這篇文章主要介紹了python用來獲得圖片exif信息的庫,實例分析了exif-py庫文件的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • pandas數據篩選和csv操作的實現(xiàn)方法

    pandas數據篩選和csv操作的實現(xiàn)方法

    這篇文章主要介紹了pandas數據篩選和csv操作的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python+Selenium實現(xiàn)一鍵摸魚&采集數據

    Python+Selenium實現(xiàn)一鍵摸魚&采集數據

    將Selenium程序編寫為 .bat 可執(zhí)行文件,從此一鍵啟動封裝好的Selenium程序,省時省力還可以復用,豈不美哉。所以本文將利用Selenium實現(xiàn)一鍵摸魚&一鍵采集數據,需要的可以參考一下
    2022-08-08
  • MATLAB 如何求取離散點的曲率最大值

    MATLAB 如何求取離散點的曲率最大值

    這篇文章主要介紹了MATLAB 求取離散點的曲率最大值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • caffe的python接口生成solver文件詳解學習

    caffe的python接口生成solver文件詳解學習

    這篇文章主要為大家介紹了caffe的python接口生成solver文件詳解學習示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python3 求約數的實例

    python3 求約數的實例

    今天小編就為大家分享一篇python3 求約數的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實現(xiàn)郵件的批量發(fā)送的示例代碼

    Python實現(xiàn)郵件的批量發(fā)送的示例代碼

    下面小編就為大家分享一篇Python實現(xiàn)郵件的批量發(fā)送的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 詳解Python中的__getitem__方法與slice對象的切片操作

    詳解Python中的__getitem__方法與slice對象的切片操作

    Python中想要使類的實例像list一樣使用下標,可以用__getitem__方法,而配合slice對象則可以實現(xiàn)list一樣的切片,詳解Python中的__getitem__方法與slice對象的切片操作
    2016-06-06

最新評論