我遇到了控制台命令的问题。
import re
import string
import sys
import subprocess
productname= "".join(sys.argv[1:])
def check():
global productname
productname= productname.replace(' ','')
productname= productname.replace('\n','')
if len(productname) >= 3:
print "Product name: %s" %(sys.argv[1:None])
check()
现在,当我在控制台命令行中输入python test.py a a a s
时,它会输出:
Product name: ['a', 'a', 'a', 's']
我想要它以便输出完全输入的输出。我该怎么做?
所以基本上输出应该是:
Product name: a a a s
那是:a(空格)a(空格)(空格)a(空格)(空格)s
我的输入有时会因空格而异,所以我不能用
进行硬编码' '.join(sys.argv[1:None]))..
答案 0 :(得分:1)
如果您需要确切的输入,可以在命令行输入:
python test.py "a a a s"
这意味着argv[1]
将是整个字符串"a a a s"
,因此这样的代码可以正常工作:
productname = sys.argv[1]
# Other stuff
# Use .split() to get the number of letters in the string.
if len(productname.split()) >= 3:
print "Product name: %s" % (productname)
这将确保您输入完全相同的字符串,包括空格,然后您可以根据需要进行清理和修改。
答案 1 :(得分:-1)
这是因为默认情况下,数组被强制转换为该格式的字符串。 (因为您使用的是%s
格式化程序。)
如果您需要其他内容,请先将数组转换为您想要的字符串。一个简单的解决方案是' '.join(sys.argv[1:None])
。