2015-04-23 69 views
0

我想读取Windows cmd中的空格参数。从Windows cmd中读取参数与空格Python

所以这里是代码。

from avl_tree import * 
import sys,os 

if __name__ == '__main__': 
    avl = AVLTreeMap() 
    infile = sys.argv[1] + '.txt' 
    avl._preprocessing(infile) 
    avl._interface(infile) 

我写它作为sys.argv中[1],因为我在cmd要去类型如下:

python filename.py textfilename 

不过,如果文本文件在名称中包含空格,将不会像那样工作。 有什么建议吗?

在此先感谢。

+2

认沽文本文件名用引号 – sshashank124

+1

'蟒蛇“filename.py”“参数2”“的说法3“...' – sshashank124

+0

我明白了。这当然有效。但是有什么办法可以改变代码来使它工作吗? – zakels

回答

0

这是一个非常哈克修复,我不一定会建议它,因为它会惹其他参数,您可能需要以后添加,但你可以做这样的事情:

infile = " ".join(sys.argv[1:]) + '.txt' 

所以,你如果你运行该程序是这样的:

python filename.py my file name 

INFILE将等于"my file name.txt"

+0

好吧,所以这看起来好像它会将所有参数作为“infile”在.py之后。我对吗? – zakels

+0

@ zakels正确。如果你想添加额外的参数,使它们成为'argv [1]'并将我的代码改为'argv [2:]'。 – Loocid

+0

但是,如果文件名包含连续的空格或前导或尾随空格,这将不起作用。 – chepner