python 일괄 처리 파일 구현

4272 단어 python일괄 처리
본 논문 의 사례 는 python 이 일괄 처리 파일 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
윈도 우즈 의 bat,linux 의 셸 은 일괄 처리 에 사용 하기 가 매우 좋 지만,아 쉽게 도 통용 되 지 않 는 다
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
---------------------------".format(json_file) json_data=open(json_file) data = json.load(json_data) cnt = len(data['steps']) i = 0 print "
## Will execute {0} steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~".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 "
* {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 "
## Done the following steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~" 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)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기