2016-03-31 30 views
2

Python kodumda os.system(filePath) kodunun çalıştırılmasına rağmen, açılan PDF dosyasının penceresini manuel olarak kapatana kadar kod durduğundan dolayı bir sorun yaşıyorum.LF> os.system (filePath) alternatifi

Bir PDF dosyası açmak için ekranımı yakalamak ve böylece dosyanın görüntüsünü yakalamak için openCV kullanın. Kod beni pencereyi kapatmadan çalışmaz, bu ... bir sorun haline gelir

KODU: Windows 8.1 (sanal makine test) bu çözüm hem kullanabilirsiniz

import numpy as np 
import shutil,os, cv2, SendKeys, win32com.client 

#While our In File has stuff in it 
while(os.listdir(pathForInFile)!=[]): 
    for subdir, dirs, inFile in os.walk(pathForInFile): 
     for fileName in inFile: 
      filePath= subdir+os.sep+fileName 

      os.system(filePath) 

      print "THIS WILL RUN NOT UNTIL I CLOSE FILE" 

      shell.SendKeys('{DOWN}') 

cevap

0

:

import os 
os.system('start path_to_my_filename.pdf') 
print("You do not need to close the opened PDF file to run and see this") 

ve Ubuntu (14.04.4 LTS):

import os 
# f = /home/begueradj/Desktop/metasploitBible.pdf' 
os.system('xdg-open path_to_my_filename.pdf') 
print("You do not need to close the opened PDF file to run and see this") 
+0

teşekkürler Bill! Şu anda çalışıyor ve hata ayıklamaya devam edebilirim. Sadece 'start' ile neden çalıştığı merak mı ediyorsunuz? Ayrıca, bir kez olduğu gibi pdf göstermiyor ve ben bir süre için gecikmek için time.sleep (10) ekledim ... – CptDeezNuts

+0

'start' işletim sisteminde çalışan varsayılan uygulama ile PDF dosyasını açar Sence * bir zamanlar pdf'yi görüntülemiyor * Sanal ve ana makinemde bir fark görmüyorum. Neden 'start' ile çalıştığı için, 'start' bir Python komutu değil, işletim sisteminize ve nasıl tepki verdiğine bağlı olarak size bir açıklama yapamıyorum. Neden 'sleep()' yi eklediniz? –

+0

Orijinal olarak os.system (filePath) dizinine aldığımda, pdf dosyası varsayılan uygulama kullanılarak açılacaktır. Bu yüzden benim açmam ve açılıncaya kadar kod çalıştırılmayacaktı. Konumu ve doğru dosyayı almak için kodu os.system ('start' + filePath) 'ile değiştirdim. Bunu yaptıktan sonra bilgisayar while döngüsü nedeniyle bir çılgınlık devam etti. Bu yüzden pdf'yi .jpeg veya .png'ye çeviremediğimden, openCV kodumun ekranımın belirli bir bölümünü yakalayabilmesi için masaüstümdeki pdf'yi görmem gerektiğini düşündüğüm için bir saniyeliğine duraksam. Ben WIN10 D'deyim :) – CptDeezNuts