2017-01-21 2 views
1

subprocess.Popen()을 사용하여 파이썬에서 PDF 파일을 열 수 있지만 PDF 파일을 닫는 데 문제가 있습니다. 어떻게하면 파이썬을 사용하여 열려있는 PDF 파일을 닫을 수 있습니까? 내 코드는 다음과 같습니다파이썬에서 PDF 파일을 열고 닫는 방법

# open the PDF file 
plot = subprocess.Popen('open %s' % filename, shell=True) 

# user inputs a comment (will subsequently be saved in a file) 
comment = raw_input('COMMENT: ') 

# close the PDF file 
#psutil.Process(plot.pid).get_children()[0].kill() 
plot.kill() 

편집 : 즉시 (plot.kill()를 사용하여)을 연 후 PDF를 닫을 수 있지만 PDF를 열고을 '죽이는'사이에 다른 명령이있을 경우이 작동하지 않습니다. 어떤 도움이라도 좋을 것입니다 - 미리 감사드립니다.

+0

https://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true – Ewoud

+0

@Ewoud 포인터에 감사드립니다. PDF 파일을 닫으려는 예제를 테스트했지만 PDF 파일은 열려 있습니다. 아이디어가 있습니까? – gpce

답변

0

제게 이것은 잘 작동합니다 ... 아마도 'open'을 사용하는 대신 pdf 판독기에 직접 명령을 사용할 수 있습니까? 'open'과 같은 명령은 새로운 프로세스를 만든 다음 즉시 종료하는 경향이 있습니다. 나는 당신의 환경이나 아무것도 몰라,하지만 나를 위해, 리눅스,이 일 :

윈도우/맥에
import subprocess 
import signal 
import os 

filename="test.pdf" 
plot = subprocess.Popen("evince '%s'" % filename, shell=True) 

input("test") 
os.killpg(os.getpgid(plot.pid), signal.SIGTERM) 

변경할 경우이 아마, 작동의 실행 파일의 경로에 '명시하다' 귀하의 PDF 리더.

관련 문제