, будучи довольно активным потребителем в течение долгого времени, вот мой первый вопрос, на который я не смог найти ответ.
После некоторых обширных исследований я придумал этот код для вызова программного обеспечения для нотной записиMuseScore из Python 3.7 для преобразования файлов при сохранении результатов конвертации 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 выдаст много выходных данных.
Вот то, что я тоже попробовал:
То же самое можно сказать только с одним аргументом команды, так чтоего можно запустить в оболочке:
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)
Все приводят к пустым файлам.Есть идеи почему?
Заранее спасибо!