2012-07-31 106 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