1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#Chemin ou sont stockés mes fichiers. Dans le repertoire pdf j'ai plusieurs dossiers avec des id_partenaire qui contienne chacun un pdf
path_extraction_folder = "C:/Users/xxxxx/yyyyyy/pdf"
list_path = glob.glob(path_extraction_folder+"/**/*.pdf",recursive=True)
#je met en place un compteur qui va compter le nombre des fichiers pdf contu dans mon dossier pdf
cpt = 0
for path in list_path:
path_base = "/".join(str(path).replace("\\","/").split("/")[:-1])
new_path = os.path.join(path_base, str(cpt)+".pdf")
os.rename(path, new_path)
cpt +=1
#Les dossiers contenus dans le dossier pdf est renonommé avec les id_partenaire, ensuite ces dossiers contiennent des fichiers (CTO ou PEA) qui eux contiennent les fichiers pdf à analyser
partenaires = [x.split("\\")[1] for x in list_path]
type_doc = [x.split("\\")[2] for x in list_path]
nom_fichier = [x.split("\\")[-1] for x in list_path]
df_files = pd.DataFrame()
df_files["partenaire"] = partenaires
df_files["nom dossier"] = type_doc
df_files["nom fichier"] = nom_fichier
df_files.to_excel("./files-tree_.xlsx",index=False)
#Ici j'ai cree mon fichier Excel qui contient le id_partenaire, le type de dossier (PEA,CTO) et le nom du pdf en lui meme
df_files = pd.read_excel("./files-tree_.xlsx")
df_files["partenaire"] = df_files["partenaire"].apply(lambda x :
str(x).rjust(14,'0'))
#Mon probleme ici c'est de faire une boucle sur les fichiers pdf en ne lisant que la premiere page,
#en recherchant 2 mots ("PLAN D'EPARGNE EN ACTIONS" ou "COMPTE TITRES ORDINAIRE")
#Puis aller mettre un KO ou un OK dans mon fichier excel si les fichiers pdf contiennent ces mots
path = file_path
pdf = pyPdf.PdfFileReader(open(path, "rb"))
fp = file(path, 'rb')
num_of_pages = pdf.getNumPages()
extract = ""
for i in range(num_of_pages):
inside = [i]
pagenos=set(inside)
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
text = ""
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,
password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
text = text.decode("ascii","replace")
if re.search(r"PLAN D'EPARGNE EN ACTIONS|COMPTE TITRES ORDINAIRE"),text.lower()):
print text
extract = extract + text + "\n"
continue
} |