2013-08-07 43 views
3

我明白了,我們就可以使用子如何使用Python運行短鍵?

import subprocess 
    subprocess.call(["ls", "-l"]) 

執行的Linux Shell命令,如果我要運行CTRL +ç終端動作?

我的使用情況是:

1> Open a linux screen 
    2> Run a command over first window 
    3> Then create a window in the same screen 
    4> Run another command over the second window 

這是很明顯的,我想我的自動化,日常的一些部分。

+1

我不知道這是否可以通過一個shell腳本來完成,你可能會更好過尋找在Python模塊,你可以用它來調用鍵擊,然後你就會調用值「^c'其中^ = CTRL,%= ALT,我很久沒有做過了,但是其他特殊字符鑰匙也 – pythonian29033

+0

你可以看看[os.kill](http://docs.python.org/3/library/os.html)和[signals](http://docs.python.org/3/ library/signal.html)。查找pid是另一回事,但無論如何,您需要一種方法來確定您要關閉的命令。 – 2013-08-07 10:51:03

回答

0

啊!找到了解決方案;

,如果你使用Ubuntu或原路返回(一個基於Debian Linux的味道) 那麼你可以安裝這個:apt-get install xautomation

,並調用按鍵與此相對容易一些,誰喜歡在英文編碼的人,但是略多複雜:

from subprocess import Popen, PIPE 

control_f4_sequence = '''keydown Control_L 
key F4 
keyup Control_L 
''' 

shift_a_sequence = '''keydown Shift_L 
key A 
keyup Shift_L 
''' 

def keypress(sequence): 
    p = Popen(['xte'], stdin=PIPE) 
    p.communicate(input=sequence) 

keypress(shift_a_sequence) 
keypress(control_f4_sequence) 
+1

這似乎是可行的。特別是爲了實現我的用例,創建一個屏幕並將命令傳遞給它。例如,我們想模仿在xc會話中按Ctrl + C,我們可以運行屏幕-x xc -X eval「stuff \\ 003」。鍵入一個單詞,然後按回車鍵將顯示-X -S xc eval「stuff Hello \\ 012」。這非常巧妙地使我的任務自動化。 [鏈接](http://www.gnu.org/software/screen/manual/screen.html#Paste) – innosam

+0

是啊,我和我的單身兄弟讓人超級恐懼的安排腳本,只會做隨機的事情,人們會去在公用計算機實驗室和尖叫聲中,「有人在竊聽這臺計算機!」 lmfu – pythonian29033