FAQ
My program is below. I'm trying to use two Windows ".exe" files with
my command line python interface. I get user input, then call
"launchWithoutConsole". This was working OK until I introduced the
'args' part. Now I get the following error everytime I call
"launchWithoutConsole":

return subprocess.Popen([command] + args,
startupinfo=startupinfo).wait()

TypeError: can only concatenate list (not "str") to list

I'm not sure if it's the WAY I'm passing it or if it's the function
itself (which I retrieved from
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/409002
)

Please help. Thanks!

import subprocess

def launchWithoutConsole(command, args):
"""Launches 'command' windowless and waits until finished"""
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
return subprocess.Popen([command] + args,
startupinfo=startupinfo).wait()

infinity = 1
#Get user input in iterative loop
while infinity:
userCommand = raw_input("> ")
if userCommand == "connect":
launchWithoutConsole("devcon.exe",'enable
"@USB\VID_0403&PID_6010&MI_00\7&15E4F68&1&0000')
launchWithoutConsole("devcon.exe",'enable
"@USB\VID_0403&PID_6010&MI_01\7&15E4F68&1&0001')
elif userCommand == "disconnect":
launchWithoutConsole("devcon.exe",'disable
"@USB\VID_0403&PID_6010&MI_00\7&15E4F68&1&0000')
launchWithoutConsole("devcon.exe",'disable
"@USB\VID_0403&PID_6010&MI_01\7&15E4F68&1&0001')
else:
# include full path to rib.exe in quotes.
launchWithoutConsole("rib.exe", userCommand)

Search Discussions

  • Juho Schultz at Nov 2, 2005 at 3:20 pm

    Ernesto wrote:
    My program is below. I'm trying to use two Windows ".exe" files with
    my command line python interface. I get user input, then call
    "launchWithoutConsole". This was working OK until I introduced the
    'args' part. Now I get the following error everytime I call
    "launchWithoutConsole":

    return subprocess.Popen([command] + args,
    startupinfo=startupinfo).wait()

    TypeError: can only concatenate list (not "str") to list

    I'm not sure if it's the WAY I'm passing it or if it's the function
    itself (which I retrieved from
    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/409002
    )

    Please help. Thanks!
    [command] is a list. So also "args" should be a list,
    otherwise [command] + args produces an error.
    Add a few square brackets to the calls, just like in the link.
  • Ernesto at Nov 2, 2005 at 3:54 pm
    Thanks, that ran without errors. The only problem now is that it
    launches devcon.exe without actually passing the parameters to the
    program. It's as if I just typed "devcon" at a Windows command prompt
    and pressed enter. I can't figure out why it doesn't accept my
    parameter.
  • Juho Schultz at Nov 2, 2005 at 4:35 pm

    Ernesto wrote:
    Thanks, that ran without errors. The only problem now is that it
    launches devcon.exe without actually passing the parameters to the
    program. It's as if I just typed "devcon" at a Windows command prompt
    and pressed enter. I can't figure out why it doesn't accept my
    parameter.
    I run python 2.3 on Linux os subprocess module and Windows executables
    are not too familiar to me. But according to docs subprocess.Popen()
    should accept both list and string arguments.

    Your strings have backslashes so check docs.python.org/ref/strings.html

    a = 'disable "@USB\VID_0403&PID_6010&MI_00\7&15E4F68&1&0000'
    print a
    disable "@USB\VID_0403&PID_6010&MI_00&15E4F68&1&0000

    \7 is the ASCII bell so your args may be different from what you think.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedNov 2, '05 at 3:07p
activeNov 2, '05 at 4:35p
posts4
users2
websitepython.org

2 users in discussion

Juho Schultz: 2 posts Ernesto: 2 posts

People

Translate

site design / logo © 2022 Grokbase