2012-07-31 117 views
1

我想從raw_input()獲取多個命令。我一直在使用這個:Python:掃描raw_input

reply = raw_input(">").split(' ') 

command = reply[0] 

file = reply[1] 

但這似乎很hacky對我有沒有更好的方法來做到這一點在Python中?

回答

2

我相信最Python的方式是

command,file = raw_input(">").split() 

使用元組拆包而非索引

在Python3.0 +,你可以使用

command,file,*everything_else = raw_input(">").split()#untested 
+0

這裏假設在raw_input(「>」)中只有2個項目。split('') – 2012-07-31 15:19:22

1

這是一個完全可以接受的讀取多個命令。如果不使用拆分,沒有辦法做到這一點。唯一需要注意的是空格只有描述了一個參數的結尾,因爲它會在任何空間上分割。

編輯:如果您有多個空格有問題,請使用split()而不是split(' ')。這將需要多個空格作爲一個分割。

+0

是的,我注意到如果我碰到一個雙倍空間,它會拋出一個錯誤。我希望有更好的辦法。 – 2012-07-31 15:28:35

+0

如果您在我上面的回覆中注意到,它更容易使用.split()而不是.split(''),因爲.split()會在任何空白處分割,但也可能是問題。 – 2012-07-31 15:31:40

+0

Yup看到了,並且已經測試了它,只是等着除了:) – 2012-07-31 15:33:15