Knowledge Map

파이썬 으로 doc 파일 읽기 본문

PYTHON

파이썬 으로 doc 파일 읽기

2016. 5. 11. 10:56


word 파일중에 word 2003 이하 버전에서는 파일 확장자가 .doc 이다.

웹에서 검색해 보면 .docx 확장자에 대해서는 쉽게 읽는 라이브러리를 파악할수 있지만 .doc 파일에 대한 것은 찾기가 어렵다.


기껏 찾은 소스를 보아도 리눅스에서 작동하는 파이썬 라이브러리만 찾을수 있다.

하지만 잘 찾아 보면 찾을수는 있다. 충분히.




.doc 파일 타입의 경우 이것 자체의 라이브러리가 있는게 아니라 win32com이라고 하는 windows 프로그램을 사용할수 있게 해주는 파이썬 라이브러리를 통해서 읽고 쓰고 할수가 있다.


그런데 pip 로 다운로드 해볼려고 해도 win32com 을 찾을수가 없다.

이것은 위의 출처인 pywin32 이라는 설치파일로 설치를 해야 관련된 라이브러리를 설치하는 거 같다.

(최소한 python2 에서는 그렇다. python3에서는 실험을 안해봐서 다를수가 있다.)


위의 주소 Files에서 적절한 운영체제 , 그리고 파이썬 - 32bit or 64it 를 찾아서 다운받고 설치한다.


그리고 다음의 소스를 파이썬에서 해보면 아주 쉽게 된다.

단, 주의할 점은 왜 그런지는 잘 모르겠으나 워드 파일이 열려져 있으면 제대로 작동하지 않고 

[pywintypes.com_error: ] 가 일어난다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*-coding: utf-8 -*-
 
import win32com.client as win32
word = win32.Dispatch("Word.Application")
word.Visible = 0
 
# 이 주소는 절대 주소로 죽 써야 한다. 그냥 폴더내에 파일을 위치시켜도 안 먹힘.
doc1 = word.Documents.Open('파일 위치한 절대경로')
 
# print doc1.Content.Text
# 왜 아래와 같이 변환시키는지는 디버깅해보면 쉽게 알수 있다.
 
test11= str(doc1.Content)
test11= test11.replace('\r','\n')
print test11
word.Quit()
cs


이와 같이 하면 죽 출력되는 것을 볼수 있다.



같이 스터디 하던 분이 올린 여러 파일에서 실행되는 코드이다.


python3 일 것이다. 참고삼아 올려본다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os
import glob
 
import win32com.client as win32
 
for path, dirs, files in os.walk('Z:\\abc\\ccc'):
    files = glob.glob('Z:\\abc\\ccc\\*.doc')
 
    for fname in files:
        word = win32.Dispatch("Word.Application")
        # word.Visible = 0
 
        doc1 = word.Documents.Open(fname)
 
        DocContents = str(doc1.Content.Text)
        DocContents = DocContents.replace('\r''\n')
        print(DocContents)
        word.ActiveDocument.Close()
        word.Quit()
        doc1 = ''
        DocContents = ''
cs


'PYTHON' 카테고리의 다른 글

DataStructure in Python[Insert Sort]  (0) 2016.05.15
파이썬 - 트위터 연계 1  (0) 2016.05.13
numpy - 1  (0) 2016.05.10
IPython 으로 간단한 실습  (0) 2016.05.09
IPython notebook 단축키 모음  (0) 2016.05.09
Comments