我正在尝试建立一个框架,在该框架下文件夹将包含多个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,我也想拥有它们确切所属的对应文件名。
请单击下面以查看输出。
答案 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)