2011-04-18 79 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