打印控制台命令我输入的确切方式

时间:2016-06-16 04:33:29

标签: python printing console command

我遇到了控制台命令的问题。

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]))..

2 个答案:

答案 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])