xonsh
을 사용하여 디렉토리의 모든 md
파일에서 pandoc
을 실행하고 싶습니다. 나는 subprocess
을 사용할 수 있지만 그것은 xonsh
에서 불필요한 것 같습니다. 여기에 지금까지 시도했습니다 무엇 :이xonsh에서 for 루프의 셸 명령을 실행하는 방법은 무엇입니까?
from glob import glob
import os
for fn in glob('*.md'):
bname, _ = os.path.splitext(fn)
pandoc $fn > ${bname}.html
내가 얻을 SyntaxError
: 내가 마지막 라인을 변경하는 경우
SyntaxError: :3:11: ('code: $fn',) pandoc $fn > ${bname}.html
: pandoc $fn > $bname.html
를, 내가 얻을 :
pandoc: $fn: openBinaryFile: does not exist (No such file or directory)
나는 문제가 그 내부의 for
루프가 파이썬 모드이지만, pandoc
호출이 서브 프로세스 모드에 있어야한다고 가정한다. 이 은으로 어떻게 처리됩니까? 얻기 위해
from glob import glob
import os
for $fn in glob('*.md'):
_, $bname = os.path.split($fn)
$[pandoc $fn > $bname.html]
: 내가 답을 알아 낸 생각
'@ (bname) .html'을 할 수 있습니까? – Paul
나는 파서가 그것을 좋아하지 않을 것이라고 생각한다. 일반적으로 단일 엔터티에 비 공백으로 구분 된 토큰을 유지하려고합니다. 방금 공개 된 xonsh 0.6.0에서는 fstrings을 지원하므로'@ (f '{bname} .html')' –