Vin*_*aka 11 python python-2.7
我正在尝试以下内容,但失败并出现错误.我试图通过在控制台上调用python从Python shell /从脚本/ Windows控制台上运行它.似乎没什么用.总是一样的错误.
from subprocess import call
>>>pat = "d:\info2.txt"
>>> call(["type",pat])
>>>Traceback (most recent call last):
File "<pyshell#56>", line 1, in <module>
call(["type",pat])
File "C:\Python27\lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
有没有人知道这里有什么问题.!! ???
即使是call(["date"]]没有任何争论的简单也会因同样的错误而失败.
我正在使用:Windows 7机器上的Python 2.72 32位版本.
Bio*_*eek 19
添加shell=True到呼叫:
>>> import subprocess
>>> subprocess.call('dir', shell=True)
0
Run Code Online (Sandbox Code Playgroud)
如你所见,它给出了返回代码的值,而不是输出dir.此外,它等待命令完成,这样做
>>> subprocess.call('date', shell=True)
Run Code Online (Sandbox Code Playgroud)
等你输入新的约会.
编辑: 如果要捕获输出,请使用subprocess.check_output.type例如,DOS命令打印出文件的内容.因此,假设您的文件info2.txt包含您的用户名,您可以这样做:
>>> import subprocess
>>> path = r'd:\info2.txt'
>>> output = subprocess.check_output(['type', path], shell=True)
>>> print output
Vinu
Run Code Online (Sandbox Code Playgroud)
有关在Python中调用外部命令的所有方法,请参阅相关问题的全面概述,有关subprocess具体的更多信息,请参阅Doug Hellmann撰写的这篇文章.
| 归档时间: |
|
| 查看次数: |
30779 次 |
| 最近记录: |