如何在python中使用子进程执行ssconvert命令

时间:2015-11-25 07:02:37

标签: python shell subprocess

我想执行以下命令

ssconvert /data/sam.xls,/data/test.csv

我试过了

 p = subprocess.Popen(["ssconvert", '/data/sam.xls','/data/test.csv'], stdout=subprocess.PIPE,shell=True)
   out = p.communicate()
   print"output", out

但它不起作用..我怎样才能解决这个问题?谢谢)):

1 个答案:

答案 0 :(得分:0)

正确的命令不是ssconvert /data/sam.xls,/data/test.csvIt should bessconvert /data/sam.xls /data/test.csv代替(注意:空格,而不是输入和输出文件名之间的逗号)。

如果您使用shell=True,则应将该命令作为字符串传递。在这种情况下,无需使用shell=True。如果shell=False(默认),则每个命令行参数应作为单个列表项传递:

#!/usr/bin/env python
import subprocess

subprocess.check_call(['ssconvert', '/data/sam.xls', '/data/test.csv'])

请参阅Why subprocess.Popen doesn't work when args is sequence?