2016-03-31 8 views
2

Pythonコードos.system(filePath)が実行されますが、開かれたPDFファイルのウィンドウを手動で閉じるまで、コードが停止するという問題があります。LF> os.system(filePath)の代替

openCVを使用して画面をキャプチャして、ファイルのイメージをキャプチャするPDFファイルを開きたいとします。コードは、私は、ウィンドウを閉じずに実行されない場合、これは...問題となる

CODE:あなたは、Windows 8.1(仮想マシンでテスト)に、このソリューションの両方を使用することができます

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}') 

答えて

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") 

と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

おかげビル!それは今実行されており、私はデバッグし続け、物事を続けていくことができます。ちょうどなぜそれが 'スタート'で動作するのだろうかと思っていますか?また、一度のようにpdfを表示していないので、少し遅れてtime.sleep(10)を追加しました。 – CptDeezNuts

+0

'start'は、あなたのオペレーティングシステムで動作するデフォルトのアプリケーションでPDFファイルを開きます。あなたが思うように*それは一度のようなpdfを表示していない*私のバーチャルマシンとホストマシンで私は少しの違いが表示されません。なぜ 'start'で動作するのか、' start'はPythonコマンドではなく、あなたのオペレーティングシステムに属し、どのように反応するのかについて説明することはできません。なぜあなたは 'sleep()'を追加しましたか? –

+0

私は元々 'os.system(filePath)'に持っていたときに、デフォルトのアプリケーションを使ってpdfファイルを開きました。だから、それは私が見ることができるように開かれ、私がそれを閉じなければコードは動かないだろう。私は 'os.system( 'start' + filePath)'でコードを置き換え、場所と正しいファイルを取得しました。私がこれをした後、コンピュータはwhileループのために狂乱になりました。だから私は私のデスクトップのPDFを見るために私の画面の特定のセクションをキャプチャするために私のopenCVコードのために私は私がpdfを.jpegまたは.pngに変換することができないので、私はWIN10 Dにいます:) – CptDeezNuts