2012-03-19 1162 views
-3

调用Python 'd:\ chan.bat'如何在python中运行.bat文件?

“设置Python语句都存储在记事本,并保存为.bat扩展 如何运行这些语句。在Python中,什么可以是语法?“

+0

此主题已经在这里讨论过。[http://stackoverflow.com/questions/1818774/python-subprocess] – Java 2012-03-19 07:51:47

+0

你是说你有一个Python脚本(由Python语句组成)或一个shell脚本命令行操作)? – 2012-03-19 08:09:59

+0

请澄清您的帖子。你使用什么语言编写的.bat文件? – 2012-03-19 08:14:06

回答

2

如果你不需要的脚本进行交互,也不会这项工作?

import os 
os.system("d:\\chan.bat") 
+0

通过shell调用程序通常不是必需的;请参阅http://docs.python.org/library/subprocess.html#replacing-os-system – 2012-03-19 08:06:01

2

我没有Windows盒来测试它。

这是我尝试在Mac OS

Dinh-Phams-MacBook-Pro:tmp dinhpham$ cat > t.bat 
print "abc" 
Dinh-Phams-MacBook-Pro:tmp dinhpham$ 
Dinh-Phams-MacBook-Pro:tmp dinhpham$ python t.bat 
abc 

Python解释器不关心.py扩展名

如果要加载.bat文件为Python模块,只需使用

imp.load_source(path_to_file) 
7

我认为这通常是使用subprocess模块完成的:

from subprocess import call 
call("D:\chan.bat") 

但是正常call不给你回多的信息。您可能需要一个Popen对象的功率:

from subprocess import Popen 
Popen("D:\chan.bat") 

编辑: 您可能需要取出单引号这个工作。

"'D:\chan.bat'" -> "D:\chan.bat"

+0

使用''\\''来转义斜线。 – 2016-02-03 03:37:59

+0

或者使用一个原始字符串,并在字符串前加'r'字符,比如'r'my string here' – 2016-02-10 14:25:54

0

命令可以传递给蟒蛇如下:

[[email protected]]$ python -c "print 'a' + 'b'" 
ab 
[[email protected]]$ 

python --help你可以看到,-c cmd : program passed in as string (terminates option list),在批处理文件中,你可以使用这个选项。