在python中连接字符串

时间:2012-02-03 17:39:58

标签: python arrays string concatenation

我正在将命令行转换为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 :(得分:6)

LiveProcess期待一个argv风格的参数列表。如果要创建一个参数,则需要提供一个字符串。所以使用串联来创建字符串:

c.cmd = [c.executable] + ['-INFILE='+c_data, '-OUTPUT=OUT'] 

此外,无需添加列表:

c.cmd = [c.executable, '-INFILE='+c_data, '-OUTPUT=OUT'] 

答案 1 :(得分:0)

为什么不直接连接这样的字符串:

a = 'A'+'B'

然后

a == 'AB'

在你的例子中

['-INFILE=' + c_data, '-OUTPUT=OUT'] 

答案 2 :(得分:0)

试试这个:

c.cmd = [c.executable] + ['-INFILE='+c_data, '-OUTPUT=OUT']

答案 3 :(得分:0)

鉴于你看起来像是在连接路径,你应该使用os.path.join,而不是常规的字符串连接。