我無法將命令傳遞到python 3.2.5中的stdin。我嘗試了以下兩種方法 另外:此問題是previous question的延續。無法寫入到子進程中的stdin
from subprocess import Popen, PIPE, STDOUT
import time
p = Popen([r'fileLoc/uploader.exe'],shell = True, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
p.stdin.write('uploader -i file.txt -d outputFolder\n')
print (p.communicate()[0])
p.stdin.close()
我也得到的數字,如96,0,85退還給我,當我嘗試在IDLE解釋器的代碼,與錯誤,如從print (p.communicate()[0])
Traceback (most recent call last):
File "<pyshell#132>", line 1, in <module>
p.communicate()[0]
File "C:\Python32\lib\subprocess.py", line 832, in communicate
return self._communicate(input)
File "C:\Python32\lib\subprocess.py", line 1060, in _communicate
self.stdin.close()
IOError: [Errno 22] Invalid argument
我也用沿:
from subprocess import Popen, PIPE, STDOUT
import time
p = Popen([r'fileLoc/uploader.exe'],shell = True, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
p.communicate(input= bytes(r'uploader -i file.txt -d outputFolder\n','UTF-8'))[0]
print (p.communicate()[0])
p.stdin.close()
但沒有運氣。
1.外殼=真解決 2。 stdin.write:我以前解決了這個問題,但我忘了寫在這裏,所以現在我有字節(r'command','UTF-8') – Rohit
3.溝通()是什麼給了我最大的問題,我繼續收到IOError:[Errno 22]無效的參數錯誤。我只調用它一次,我使用的格式如下: 輸出= p.communicate(輸入='任何輸入是')[0] 即使我寫:print(p.communicate()[ 0])它仍然給我IOError:[Errno 22]無效參數錯誤 – Rohit
4.它是一個命令我試圖運行,所以我試過 p = Popen([r'fileLoc/uploader.exe','command' ],stdout = PIPE,stdin = PIPE,stderr = STDOUT)和p = Popen([r'fileLoc/uploader.exe'],stdout = PIPE,stdin = PIPE,stderr = STDOUT),當我做p.stdout。 readlines()我得到了相同的登錄信息 – Rohit