在Python中连接字符串

0 投票
4 回答
501 浏览
提问于 2025-04-17 12:16

我正在把一个命令行转换成一个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'] 

撰写回答