2017-09-27 1 views
1

파이썬에서 .TIF에있는 페이지의 수를 정확하게 읽으려고하고 있으며 어제 얻은 도움으로 일부 코드를 수정했습니다. 나는 파이썬이 .TIF 파일을 읽고 페이지를 출력하도록했지만, 찾을 수있는 첫 번째 .TIF 파일 만 읽습니다. 같은 위치에있는 모든 .TIF 파일을 검토해야합니다.파이썬에서 .TIF 파일의 총 페이지 수를 계산합니다.

어떻게하면 계산이 끝나고 완전히 완료 될 때까지 다음 파일로 계속 진행할 수 있는지 궁금합니다. 여기

는 지금까지

import os 
from PIL import Image 

count = 0 
i = 0 
tiffs_path = "c:\\tiftest" 

for filename in os.listdir("c:\\tiftest"): 
    if filename.endswith(".TIF"): 
     img = Image.open(filename) 
     while True: 
      try: 
       img.seek(count) 
       print(filename) 
       print(count) 
      except EOFError: 
       break  
      count += 1   

print(count) 
+0

같은 디렉토리에서 파일을 읽을 수 없습니다 있기 때문에이 전혀 작동 깜짝 당신 에서 목록을 얻었다. – kindall

+0

'Image.open (...') 다음에'count = 0'을 이동하십시오. – stovfl

답변

0

당신은 TIFF에서 프레임 수를 찾을 Image.n_frames를 사용할 수있을 것입니다. 그것은 베개 2.9.0에 추가되었습니다. 베개 4.2.1와 예를 들어

:

Python 2.7.13 (default, Dec 18 2016, 07:03:39) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from PIL import Image 
>>> img = Image.open("multipage.tiff") 
>>> img.n_frames 
3 
>>> 

그래서,이 같은 :

import os 
from PIL import Image 

count = 0 
i = 0 
tiffs_path = "c:\\tiftest" 

for filename in os.listdir("c:\\tiftest"): 
    if filename.endswith(".TIF"): 
     img = Image.open(filename) 
     print(filename) 
     print(img.n_frames) 
관련 문제