经过广泛的研究,我提出了以下代码,从Python 3.7中调用音乐记谱软件MuseScore,以便在将MuseScore的转换输出保存到日志文件的同时转换文件:
import subprocess
with open('conversion.log', 'w') as out:
proc = subprocess.run(['mscore','-o','out.mscx','in.xml'], encoding='utf-8', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in proc.stdout.split('\n'):
out.write(line)`
问题是:不管我做什么,日志文件都严格保持为空。但是,如果在终端中运行该命令,MuseScore会给出很多输出
以下是我也尝试过的:
同样的东西只放一个命令参数,这样它就可以在shell中运行:
proc = subprocess.run("mscore -o out.mscx in.mxl", encoding='utf-8', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
我尝试了capture_output
这样的论点:
with open('conversion.log', 'wb', 0) as out:
proc = subprocess.run(['mscore','-o','out.mscx','in.xml'], capture_output=True)
out.write(proc.stdout)
所有文件都是空的。知道为什么吗
目前没有回答
相关问题 更多 >
编程相关推荐