在Python中连接字符串
我正在把一个命令行转换成一个Python字符串。这个命令行是:
../src/clus -INFILE=../input/tua40.sq -OUTPUT=OUT
这个Python语句是:
c_dir = '~/prj/clus/'
c_bin = c_dir + 'src/clus'
c_data = c_dir + 'input/tua40.sq'
c = LiveProcess()
c.executable = c_bin
c.cwd = c_dir
c.cmd = [c.executable] + ['-INFILE=', 'c_data, '-OUTPUT=OUT']
问题是最后的 c.cmd
看起来像是
~/prj/clus/src/clus -INFILE= ~/prj/clus/input/tua40.sq ...
注意在'='后面有一个空格,这导致程序报错。
我该怎么把'='和路径连接在一起呢?
4 个回答
0
试试这个:
c.cmd = [c.executable] + ['-INFILE='+c_data, '-OUTPUT=OUT']
0
你为什么不直接把字符串拼接起来呢,像这样:
a = 'A'+'B'
然后
a == 'AB'
这就是你例子中的情况
['-INFILE=' + c_data, '-OUTPUT=OUT']
6
LiveProcess
需要一个类似于命令行参数的列表。当你想要传递一个参数时,你需要提供一个字符串。所以你可以把多个部分拼接在一起,形成一个字符串:
c.cmd = [c.executable] + ['-INFILE='+c_data, '-OUTPUT=OUT']
另外,不需要使用列表的加法:
c.cmd = [c.executable, '-INFILE='+c_data, '-OUTPUT=OUT']