0

我想执行以下命令:

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

但它不起作用。

我该如何解决这个问题?

4

2 回答 2

1

这是有效的

import subprocess
subprocess.call(["ssconvert","sample.xlsx","sample.csv"],cwd="pathtoyourfile") # pathtoyourfile must contain the xlsx and csv files
于 2015-12-18T12:14:53.380 回答
0

正确的命令不是ssconvert /data/sam.xls,/data/test.csv它应该是: ssconvert /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'])

请参阅为什么当 args 是序列时 subprocess.Popen 不起作用?

于 2015-11-25T09:50:26.680 回答