共同读取多个docx文件

时间:2019-08-09 12:43:12

标签: python dataframe text .doc

我正在尝试建立一个框架,在该框架下文件夹将包含多个word文档,python将集体读取该文档并为我提供该文件中所有SSN的输出。

我也已经完成了该解决方案,即,我能够构建提供结果的函数,但是我也想获取从中提取SSN的相应文件名。

#importing libraries        
import pandas as pd    
import docx2txt    

#extracting data from all the files at once    
import glob    
data = ''   
for file in glob.glob('C:/Users/d118/Desktop/Word Files/*.docx'):        
    data += docx2txt.process(file)    

#defining the function
def isSSNNumber(text):    
    if len(text) != 11:    
        return False    
    for i in range(0,3):    
        if not text[i].isdecimal():    
               return False    
    if text[3] != '-':    
           return False    
    for i in range(4,6):    
         if not text[i].isdecimal():    
            return False    
    if text[6] != '-':    
           return False    
    for i in range(7,11):    
         if not text[i].isdecimal():    
            return False    
    return True    

#using the function    
result = []    
for i in range(len(data)):    
    chunk = data[i:i+11]    
    if isSSNNumber(chunk):    
        result.append(chunk)    

#required dataframe 

df = pd.DataFrame(result)    
df    

现在,我提取了我的SSN,我也想拥有它们确切所属的对应文件名。

请单击下面以查看输出。

Output

1 个答案:

答案 0 :(得分:0)

尝试使用此:

def isSSNNumber(text, file):    
    if len(text) != 11:    
        return False    
    for i in range(0,3):    
        if not text[i].isdecimal():    
               return False    
    if text[3] != '-':    
           return False    
    for i in range(4,6):    
         if not text[i].isdecimal():    
            return False    
    if text[6] != '-':    
           return False    
    for i in range(7,11):    
         if not text[i].isdecimal():    
            return False  
    print(file)
    return True 

主要:

for file in glob.glob('C:/Users/d118/Desktop/Word Files/*.docx'):
    data = docx2txt.process(file)
    result = []
    for i in range(len(data)):
        chunk = data[i:i + 11]
        if isSSNNumber(chunk, file):
            result.append(chunk)
相关问题