akuzma
akuzma

Reputation: 1554

subprocess, cannot concatenate 'str' and ... objects

I have code like:

if len(sys.argv)>1:
    host = sys.argv[1]
    number = sys.argv[2] if len(sys.argv)>2 else "1"
    size = sys.argv[3] if len(sys.argv)>3 else "56"
    timeout = sys.argv[4] if len(sys.argv)>4 else "1"

        proc = subprocess.Popen(["ping \"" + host + "\" -c \"" + number + "\" -s \"" + size + "\" -W \"" + timeout + "\" 2>/dev/null | grep packets | sed 's/[^0-9,%]*//g'"], stdout=subprocess.PIPE, shell=True)
        (out, err) = proc.communicate()

    print "address=\"" + host + "\" data=" + out

I need to split out to list. How I can achieve this?
Everything I try causes error: cannot concatenate 'str' and ... objects

Like when I tried:

...
    res=list(out)
        print "address=\"" + host + "\" data=" + res

I got error:

TypeError: cannot concatenate 'str' and 'list' objects

Upvotes: 0

Views: 1535

Answers (1)

User
User

Reputation: 14873

To unite strings and lists you first must make a string out of the list:

    res=list(out)
    print "address=\"" + str(host) + "\" data=" + str(res)

Upvotes: 1

Related Questions