'''
Python 扫描C++代码合成word文件 by 郑瑞国
wordFromScanText.py
'''
import os
import time
import string
import hashlib
import pefile
import datetime
import threading
from time import sleep
import win32com.client as win32
RANGE = range(3, 128)
def creatword():
app = 'Word'
word = win32.gencache.EnsureDispatch('%s.Application' % app)
doc = word.Documents.Add()
word.Visible = True
sleep(1)
rng = doc.Range(0,0)
return rng
def writeword(rng,line):
rng.InsertAfter(line)
def gethash(file):
m = hashlib.md5()
s = hashlib.sha1()
s256 = hashlib.sha256()
with open(file,'rb') as f:
for line in f:
m.update(line)
s.update(line)
s256.update(line)
md5code = m.hexdigest()
sha1code = s.hexdigest()
sha256code = s256.hexdigest()
return (md5code,sha1code,sha256code)
def getdisklist():
disklist = []
d = string.ascii_uppercase
#print(d)
for w in d:
disk = w+':'
if os.path.isdir(disk):
disklist.append(disk)
return disklist
def getinfo(myfile,rng):
writeword(rng,myfile)
try:
with open (myfile,'rt') as f:
lines = f.readlines()
for line in lines:
print(line)
writeword(rng,line)
except:
pass
def scan(disklist):
rng= creatword()
for disk in disklist:
os.chdir(disk+'/')
tree = os.walk('/')
for dir in tree:
for file in dir[2]:
print(file)
exname = os.path.splitext(file)
if '.h'in exname[1] or '.cpp'in exname[1]:
myfile = disk+dir[0]+'/'+file
getinfo(myfile,rng)
if __name__=='__main__':
disklist = getdisklist()
scan(disklist)