0

我将 mylist 作为参数传递给 sys.argv 我这样做:

mylist = str(list)
nbre = str(nbre)
comm = 'python2.6 file.py ' + mylist + ' ' + nbre + ' &'
os.system(comm)

file.py中,我希望mylist通过这种方式获得,[machine1,machine2]但在执行时包含:

mylist = sys.argv[1]

我明白[machine1了,这是错误的。当我显示时,sys.argv我发现:

['file.py','[machine1,','machine2]','1']

我不明白为什么我的名单是这样组成的?

4

1 回答 1

4

除了这是一种将列表从一个 python 脚本传递到另一个脚本的糟糕方式之外,您还需要在列表周围使用引号以防止它被 shell 拆分:

comm = 'python2.6 file.py "%s" "%s" &' % (mylist, nbre)

我使用字符串格式将引号放在mylistnbre.

您真的想查看subprocess模块以调用其他进程,而不会受到 shell 的阻碍。

于 2012-10-19T08:51:43.183 回答