#-*-coding:utf8-*-
import os
import subprocess
import shutil
import psutil
import time #查找指定文件名称和查找范围的文件路径
def search(name, path):
name = name.lower()
for root,dirs,files in os.walk(path):
for file in files+dirs:
if name in file.lower():
return os.path.join(root,file)
return -1 #修改do文件内容
def do(in_file):
w = ''
for line in open('sort.do','r').readlines():
if 'foreach' in line:
ceil = line.split(" ")
ceil[len(ceil)-1] = '"'+in_file+'"{\n'
w = ""
for i in ceil:
w = w + i + ' '
else:
w += line with open('sort.do','wb') as writer:
writer.write(w) #运行指定的其他类型的程序,如do文件
def run_do(do_file,in_file): do(in_file) # 查找windows所有盘符名称
information = os.popen("wmic LOGICALDISK get name").read().split("\r\n")
code = []
for inform in information:
if ':' in inform:
code.append(inform.strip())
print code # 遍历所有盘符,直到找到StataMP-64.exe文件
for path in code:
stata_path = search('StataMP-64.exe', path + '\\')
if stata_path != -1:
break
print stata_path if os.path.exists(''):
pass
print '已存在'
else:
do_file = os.path.abspath(do_file + '.do')
cmd = [stata_path,'do',do_file]
child = subprocess.Popen(cmd)
#找出本机逻辑核个数
cpu_count = psutil.cpu_count()
while True:
time.sleep(5)
# 传入进程PID,实现监控功能
cpu_percent = psutil.Process(child.pid).cpu_percent(interval=2)
percent = cpu_percent/cpu_count
print cpu_count,cpu_percent,percent
if percent == 0:
child.kill()
print 'Success'
break if __name__ == '__main__': run_do('sort')

python拓展应用:运行do文件及其衍生内容的更多相关文章

  1. 编写python程序和运行.py文件的方法步骤

    前提:已安装好 Subliume Test 3 且已经添加好python编译系统,已安装好python3.7 一.新建一个文本文档,将后缀名改为.py 二.使用 Subliume Test 3 打开该 ...

  2. Python 3基础教程14-在文件尾部更新内容

    本文介绍在一个已经存在的文件尾部添加内容,还是用到write方法. 这里exampleFile.txt是前面文件创建的文件,里面有两行文字.

  3. python命令行运行py文件找不到模块的解决办法

    问题: 新建了一个项目,目录结构如下: 然后在pycharm中运行glovar是没有问题的,但是在命令行中运行就会提示找不到init模块 这是因为在pycharm中运行的时候,pycharm会自动将项 ...

  4. 利用python第三方库提取PDF文件的表格内容

    小爬最近接到一个棘手任务:需要提取手机话费电子发票PDF文件中的数据.接到这个任务的第一时间,小爬决定搜集各个地区各个时间段的电子发票文件,看看其中的差异点.粗略统计下来,PDF文件的表格框架是统一的 ...

  5. 吴裕雄--天生自然python学习笔记:打开文件并显示文件内容

    Win32com 组件打开文件通过 Documents 的 Open 方法,语法为 : 例如,打开上一节创建的 testl . docx 文件 , 文件变量名为 doc: 获得文件内容的方法有两种,第 ...

  6. 吴裕雄--天生自然python学习笔记:python 用pyInstaller模块打包文件

    要想在没有安装 Python 集成环境的电脑上运行开发的 Python 程序,必须把 Python 文件打包成 .exe 格式的可执行 文件. Python 的打包工作 PyInstaller 提供了 ...

  7. python编译、运行、反编译pyc文件

    为了加密 .py 文件,以前一般使用打包成 exe ,但是最近发现可以将其编译成二进制文件 pyc ,虽然反编译难度不大,但是也需要一些水平 编译生成 pyc: 单个文件 代码: import py_ ...

  8. python -m 命令单独运行一个文件,怎么解决单独运行文件报错?

    依旧是续上篇解决为什么项目能运行,单独文件不能运行. 依旧是python3先发下目录结构,依旧是cmd运行,不要弄pycharm开始运行,否则有些错误就发现不了! 项目下面有pac1文件夹,pac1下 ...

  9. python 导入模块的坑。为什么整个项目能运行,单独运行某个文件模块就报错?多层目录不同文件夹怎么导入?

    一些文章介绍了python不同目录怎么导入问题,但py文件运行起点却从来没有文章说过!这是相当重要的!! 这个连接是网上99%的所讲的导入 https://www.cnblogs.com/luoye0 ...

随机推荐

  1. 爬虫入门之Scrapy框架基础框架结构及腾讯爬取(十)

    Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据. 如果安装了 IPyth ...

  2. 《C++ Primer Plus》读书笔记之二—复合类型

    二.第四章 复合类型  1.C-风格字符串:C-风格字符串具有一种特殊的性质:以空字符结尾,空字符被写成\0,其ASC||编码为0,用来标记字符串的结尾.例如: char dog[5]={'b','e ...

  3. 在ubuntu16.04上安装eclipse

     在ubuntu16.04上安装eclipse 一.下载     首先我们需要安装jdk1.8及其以上,然后从官网:https://www.eclipse.org/downloads/上下载,需要注意 ...

  4. HBase编程 API入门系列之put(客户端而言)(1)

    心得,写在前面的话,也许,中间会要多次执行,连接超时,多试试就好了. [hadoop@HadoopSlave1 conf]$ cat regionservers HadoopMasterHadoopS ...

  5. 一个较复杂的执行redis的lue脚本

  6. posix进程间的通信

    1.无名管道 1.1管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: 只能用于父子进程或者兄弟进程之间( ...

  7. MS17-010复现

    很早之前做的了,今天整理看到了,正好腾到blog上. ########################分割线############################## MS-17-010 攻击者向 ...

  8. 2018 Multi-University Training Contest 4 Problem K. Expression in Memories 【模拟】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6342 Problem K. Expression in Memories Time Limit: 200 ...

  9. 洛谷p1064 金明的预算方法

    有附带条件的01背包 要那附件必须拿主件 因为一个主件最多有两个附件,所以每次遇到主件可能有四种选择 1.只拿主件 2.拿主件和一号附件 3.拿主件和二号附件 4.都拿 #include <cs ...

  10. 使用js接收ajax解析的json再拼成一个自己想要的json

    //ajax解析的json{ "status": 1, "content": { "pathsInfo": [ { "id&quo ...