2011-04-21 18 views
0
import subprocess 
import threading 
import time 

class terminal(threading.Thread): 
    def run(self): 
     self.prompt() 


    def prompt(self): 
     x = True 
     while x: 
      command = raw_input() 
      x = self.interpret(command) 

    def interpret(self,command): 
     if command == 'exit': 
      #_conf.cancel() 
      #_conf.allclear.wait() 
      return False 
     else: 
      print 'Invalid Command' 
     return True 

command = 'java -jar ../bukkit/craftbukkit.jar' 
#startcmd = 'java -Xmx' + str(self.config['start_heap']) + 'M -Xms' + str(self.config['max_heap']) + 'M -jar ' + str(path) 
#stopcmd = 'screen -S ' + self.config['screen_bukkit'] + ' -p 0 -X stuff "`printf "stop\r"`"' 
term = terminal() 
term.start() 
p = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
while (p.poll() == None): 
    line = p.stderr.readline() 
    if not line: break 
    print line.strip() 
    time.sleep(0.1) 

これは私の単純化されたコードです。しかし、何も入力せずにターミナルクラスのraw_input()の入力時にエラーなしで実行され、プロンプトに表示されます。どうしましたか?端末入力が表示されない

答えて

0

raw_inputは、プロンプトテキストをパラメータとして使用し、デフォルトでは空の文字列になります。それをraw_input("input: ")などに変更してみてください。

+0

私が調べなければならないことは、問題ではありません。それは私のタイプdoesntが現われないことを –

関連する問題