2017-10-24 1 views
1

하나의 폴더에 "Test_Plan"이 있습니다. 여러 개의 docx 파일로 구성되며 각 docx 파일에는 여러 개의 테이블이 있습니다. 내 질문은 어떻게 전체 docx 파일을 읽을 수 있으며 출력을 줄 수 있습니까? 예를 들어, 모든 DOCX 파일은 내가 한 DOCX 파일을 따기와같은 폴더에있는 여러 docx 파일의 테이블을 파이썬으로 읽는 방법

같은 출력을 제공하고있어, 여러 개의 테이블이

(예) 테이블의
총수 : YES 자동화의 52
총 수 : 6
총계 NO 자동화 : 5

이렇게 "Test_Plan"폴더에있는 파일의 전체 개수를 자동화해야합니다. 당신이 내 질문을 이해하기를 바랍니다.

하나의 DOCX 파일의 읽기 테이블에 대한 내 코드 :

#Module to retrive the word documents 

from docx import Document 
doc = Document("sample2.docx") 


#Reading the tables in the particular docx 

i = 0 
for t in doc.tables: 
    for ro in t.rows: 
     if ro.cells[0].text=="ID" : 
      i=i+1 
print("Total Number of Tables: ", i) 


#Counting the values of Automation 
# This will count how many yes automation 

j=0 
for table in doc.tables: 
    for ro in table.rows: 
     if ro.cells[0].text=="Automated Test Case" and (ro.cells[2].text=="yes" or ro.cells[2].text=="Yes"): 
      j=j+1 
print("Total Number of YES Automations: ", j) 


#This part is used to count the No automation values 

k = 0 
for t in doc.tables: 
    for ro in t.rows: 
     if ro.cells[0].text=="Automated Test Case" and (ro.cells[2].text=="no" or ro.cells[2].text=="No"): 
      k=k+1 
print("Total Number of NO Automations: ", k) 

출력 :

enter image description here

답변

1

당신은 모든 파일, 예를 들면 찾아 글로브를 사용할 수 있습니다

import glob 
for name in glob.glob('Test_Plan/*.docx'): 
    doc = Document(name) 
    ... 

glob는 주어진 패턴과 일치하는 파일 이름 목록을 리턴합니다. 위의 루프와 같이 해당 목록을 반복하여 모든 파일을 차례로 열 수 있습니다. 파일을 열면 코드를 플러그인 할 수 있습니다. 물론 루프 전에 변수를 초기화해야합니다.

파일 이름을 분할 위해 나는 다음과 같은 방법을 사용하는 것이 좋습니다 것입니다 :

import os.path 

path, filename = os.path.split(input) 
+0

그래, 나중에 다시 작은 얻을. –

+0

안녕하세요 Andreas 저는 Python을 처음 접했습니다. 그래서 조금 더 설명해주십시오. –

+0

내 대답을 내 대답에 추가하십시오. –