我想执行以下命令:
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
但它不起作用。
我该如何解决这个问题?
我想执行以下命令:
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
但它不起作用。
我该如何解决这个问题?
这是有效的
import subprocess
subprocess.call(["ssconvert","sample.xlsx","sample.csv"],cwd="pathtoyourfile") # pathtoyourfile must contain the xlsx and csv files
正确的命令不是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'])