将Window BAT(批处理)文件转换为Python脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将Window BAT(批处理)文件转换为Python脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1574字,纯文字阅读大概需要3分钟。
内容图文
![将Window BAT(批处理)文件转换为Python脚本](/upload/InfoBanner/zyjiaocheng/655/4f1f74b66ae44358ae62ba2e5d90448c.jpg)
我有一个包含REM,MKDIR,ECHO的DOS命令的Window .bat文件,它运行一些程序,尤其是将所有输出合并到带有时间戳的日志文件中.我想将其翻译成Python.
我尝试了os.system,但是它不起作用-它会运行我需要运行的程序,但是无法连接所有语句,确保所有日志都输出到正确的文件中.据我了解,每次使用os.system分别调用命令行时.
摘录示例:
SET LOG=test.log
DEL /F /Q ..\output
REM THE LOG STARTS HERE
ECHO test.bat started >%LOG%
ECHO %DATE% >>%LOG%
ECHO %TIME% >>%LOG%
stata/e statascript.do
matlab -r matlabscript -logfile matlabscript.log -nosplash -minimize -wait
lyx -e pdf2 document >>%LOG% 2>&1
COPY %LOG%+statascript.log+matlabscript.log %LOG%
ECHO test.bat completed >>%LOG%
ECHO %DATE% >>%LOG%
ECHO %TIME% >>%LOG%
PAUSE
我的示例代码:
import subprocess, time, sys, os
log = open('test.log', 'w')
p = subprocess.call(r'DEL /F /Q ..\output\\', shell = True)
log.write('test.py started\n')
log.write(time.asctime())
log.write('\n\n\n')
log.flush()
p = subprocess.call(r'%STATAEXE% /e do statacode.do', shell = True, stdout = log)
log.write(open('statacode.log').read())
p = subprocess.Popen('DEL statacode.log', shell = True, stdout = log)
log.write('\n\ntest.py completed\n')
log.write(time.asctime())
log.write('\n')
log.flush()
log.close()
raw_input("Press <Enter> to exit.")
我剩下的唯一问题是:当我在Windows中通过以test.bat的方式双击test.py来运行它时,即使所有步骤最终都完成了,我也会收到此错误警告消息:
“该进程无法访问该文件,因为它正在被另一个进程使用”
任何想法?
解决方法:
您可能应该使用subprocess模块来调用可执行文件.它允许您指定流程的输入和输出句柄之类的内容,因此可以将它们定向到所需的位置.
内容总结
以上是互联网集市为您收集整理的将Window BAT(批处理)文件转换为Python脚本全部内容,希望文章能够帮你解决将Window BAT(批处理)文件转换为Python脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。