2011-04-18 83 views
0

我正在使用Python 2.6 我想从python输入指令到命令窗口中。 我只需要正确的方法。然而,作为一个指标,我展示了几次失败的试验。 下面是一些试验和错误类型,我得到:如何从python写入Windows命令窗口

一审

import subprocess 
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE) 
stdout, stderr = subprocess.communicate('cd Documents') 
AttributeError: 'module' object has no attribute 'communicate' 

二审:

import subprocess 
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE) 
proc.stdin.write("cd Documents") 

没有错误消息,但没有任何反应。我试图打开一个不存在的文件夹,我得到同样的东西。在命令窗口保持为空

三试:

os.system('cd Documents') 

什么也没有发生,则返回1,但是如果我尝试打开不存在的文件夹,它也返回1:

os.system('cd Documentss') 

最后审判

a=os.popen("C:\\system32\\cmd.exe",'w') 
a.write("cd Documents") 
IOError: [Errno 22] Invalid argument 

感谢您的帮助

+0

你为什么要这么做?是不是'os.chdir(“C:\\ ..”)'够了? – kurumi 2011-04-18 13:27:23

回答

2

您的第一个试验是正确的,除了您调用模块而不是新实例化的类之外。您需要使用

proc.communicate('cd Documents')

+0

非常感谢你的回答。如果我这样做,我不会再收到错误消息。但是,如果我正在编写这个文件,那么窗口就会关闭文件是否存在。第一行写完后,命令窗口上也没有任何内容出现 – henrima 2011-04-18 13:50:23

-1

你的第三次试验:

os.system('your command') 

作品。我使用,它的确定:

os.system('ipconfig -renew') # Renew all connections windows 

尝试:

os.system('ipconfig -release') # you will disconnect from your network 

然后使用:

os.system('ipconfig -renew') # network will back