我正在将命令行转换为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 ...
并非'='后面有'空格'会导致程序报告错误。
如何将'='连接到路径?
答案 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
,而不是常规的字符串连接。