簡體   English   中英

python-通過子進程捕獲pandoc錯誤消息

[英]python - capture pandoc error message via subprocess

我正在編寫一些通過subprocess模塊與pandoc交互的Python代碼。 但是,我無法捕獲每當命令出錯時通常會在控制台上打印的pandoc 例如,我將以下命令放入Terminal:

pandoc -N  --variable mainfont=Georgia --variable sansfont=Arial --variable monofont="Bitstream Vera Sans Mono" --variable fontsize=12pt --variable version=1.10 README.txt  --latex-engine=xelatex --toc -o README.pdf

然后pandoc吐出此錯誤消息:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
! 
! The font "Bitstream Vera Sans Mono" cannot be found.
! 
! See the fontspec documentation for further information.
! 
! For immediate help type H .
!...............................................                                                   
l.20 ...apping=tex-ansi]{Bitstream Vera Sans Mono}  
pandoc: Error producing PDF from TeX source

現在,我試圖在我的Python代碼中捕獲相同的錯誤消息,但無濟於事。 我當前的代碼如下所示:

cmd = ['pandoc', '-N', '--variable=mainfont:Georgia', '--variable=sansfont:Arial', '--variable=monofont:"Bitstream Vera Sans Mono"', '--variable=fontsize:12pt', '--variable=version:1.10', 'README.txt', '--latex-engine=xelatex', '--toc', '--output=README.pdf']
proc = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
print proc

但這僅告訴我該命令returned non-zero exit status 43 它不會打印出我在控制台中看到的完整的(實際信息豐富的)錯誤消息。

我想念什么?

根據文檔 ,看起來像這樣應該可以工作。

try:
    subprocess.check_output(cmd)
except subprocess.CalledProcessError as e:
    print e.output

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM