舉例來說,如果我有這樣的代碼:是否有可能讓python打開一個終端並寫入它?
subprocess.call(['gnome-terminal'])
是否有可能有剛打開蟒蛇輸出字符串到特定終端?謝謝!
舉例來說,如果我有這樣的代碼:是否有可能讓python打開一個終端並寫入它?
subprocess.call(['gnome-terminal'])
是否有可能有剛打開蟒蛇輸出字符串到特定終端?謝謝!
可能,但在下級終端中運行自定義進程更容易。例如,從example server in the documentation給出sserv.py
命令:
gnome-terminal -e "python ./sserv.py"
會很樂意在端口9999與你聊天。給定一個更復雜的sserv.py
它可以做任何你想要的(任何東西都是末日的,就是這樣)。
+1:整齊。完成。簡單。 – 2010-07-27 02:34:54
我認爲PExpect可能會爲你做到這一點:
Pexpect的基本上是一個模式 匹配系統。它運行程序和手錶輸出。當輸出匹配 給定模式時,如果人類正在鍵入響應,則Pexpect可以響應爲 。 Pexpect可用於自動化測試, 測試和屏幕抓取。 Pexpect的 可用於自動化交互式 控制檯應用程序,如SSH,FTP, passwd文件,遠程登錄等,也可用於通過
lynx
,w3m
,或者一些其他的基於文本的 Web瀏覽器來控制Web應用程序 。 Pexpect是純Python的 。不像其他類似 Python的模塊Pexpect不需要 要求TCL或期望,也不要求 要求編譯C擴展。 它應該可以在任何支持標準Python pty 模塊的平臺上工作。
您的答案適用於*閱讀*,但不適用於*寫作*。 – Arafangion 2010-07-27 02:30:07
@Arafangion實際上PExpect _DOES_支持寫作,並且做得很好。 它甚至可以寫入PAM密碼輸入,這通常不適用於典型的stdin。 PExpect模仿tty設備IIRC – 2010-07-27 02:47:32
那麼在http://pexpect.svn.sourceforge.net/viewvc/pexpect/trunk/pexpect/examples/monitor.py?revision=498&view=markup中的child.sendline()等呢? – 2010-07-27 02:51:31
這是可能的...但是你想做什麼? – Arafangion 2010-07-27 02:27:14