zoukankan      html  css  js  c++  java
  • python拓展应用:运行do文件及其衍生内容

     1 #-*-coding:utf8-*-
     2 import os
     3 import subprocess
     4 import shutil
     5 import psutil
     6 import time
     7 
     8 
     9 #查找指定文件名称和查找范围的文件路径
    10 def search(name, path):
    11     name = name.lower()
    12     for root,dirs,files in os.walk(path):
    13         for file in files+dirs:
    14             if name in file.lower():
    15                 return os.path.join(root,file)
    16     return -1
    17 
    18 #修改do文件内容
    19 def do(in_file):
    20     w = ''
    21     for line in open('sort.do','r').readlines():
    22         if 'foreach' in line:
    23             ceil = line.split(" ")
    24             ceil[len(ceil)-1] = '"'+in_file+'"{
    '
    25             w = ""
    26             for i in ceil:
    27                 w = w + i + ' '
    28         else:
    29             w += line
    30 
    31     with open('sort.do','wb') as writer:
    32         writer.write(w)
    33 
    34 #运行指定的其他类型的程序,如do文件
    35 def run_do(do_file,in_file):
    36 
    37     do(in_file)
    38 
    39     # 查找windows所有盘符名称
    40     information = os.popen("wmic LOGICALDISK get name").read().split("
    ")
    41     code = []
    42     for inform in information:
    43         if ':' in inform:
    44             code.append(inform.strip())
    45     print code
    46 
    47     # 遍历所有盘符,直到找到StataMP-64.exe文件
    48     for path in code:
    49         stata_path = search('StataMP-64.exe', path + '\')
    50         if stata_path != -1:
    51             break
    52     print stata_path
    53 
    54     if os.path.exists('20140803'):
    55         pass
    56         print '已存在'
    57     else:
    58         do_file = os.path.abspath(do_file + '.do')
    59         cmd = [stata_path,'do',do_file]
    60         child = subprocess.Popen(cmd)
    61         #找出本机逻辑核个数
    62         cpu_count = psutil.cpu_count()
    63         while True:
    64             time.sleep(5)
    65             # 传入进程PID,实现监控功能
    66             cpu_percent = psutil.Process(child.pid).cpu_percent(interval=2)
    67             percent = cpu_percent/cpu_count
    68             print cpu_count,cpu_percent,percent
    69             if percent == 0:
    70                 child.kill()
    71                 print 'Success'
    72                 break
    73 
    74 if __name__ == '__main__':
    75 
    76     run_do('sort')
  • 相关阅读:
    H5新特性---Web Worker---Web Stroage
    H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位
    H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图
    H5新特性-canvas绘图--渐变对象路径(最复杂)--图片--变形操作
    H5新特性-视频,音频-Flash-canvas绘图
    JQUERY-自定义插件-ajax-跨域访问
    JQUERY-插件
    JQUERY-事件-动画-类数组对象-添加自定义API
    JQUERY-修改-API-事件绑定
    jsp第五章
  • 原文地址:https://www.cnblogs.com/jpapplication/p/9789029.html
Copyright © 2011-2022 走看看