2016-10-07 1 views
1

J'essaie d'obtenir le contenu de plusieurs fichiers .pdf à partir d'un répertoire afin de les transformer en texte avec la bibliothèque tika, mais je crois que je ne lis pas les objets du fichier .pdf correctement. Voilà ce que j'ai essayé jusqu'à présent:Des problèmes lors de l'application d'une fonction au contenu de chaque élément d'un répertoire en python?

Entrée:

for filename in sorted(glob.glob(os.path.join(input_directory, '*.pdf'))): 
    with open(filename,"rb") as f: 
     print(f) 
     text = parser.from_file(f) 

Sortie:

<_io.BufferedReader name='/Users/user/Downloads/pdf-files/a_pdf_file.pdf'> 
AttributeError: '_io.BufferedReader' object has no attribute 'decode' 

Quelle est la façon la plus efficace de la marche à travers le contenu des fichiers en python ?.

+2

Utilisez-Python 3 vous? Essayez de supprimer le drapeau "b". – brianpck

+0

merci pour l'aide @brianpck, je l'ai supprimé et j'ai toujours la même exception 'AttributeError: '_io.TextIOWrapper' objet n'a pas d'attribut 'decode''. – tumbleweed

Répondre

1

L'analyseur tika reçoit un chemin et ouvre le fichier lui-même:

for filename in sorted(glob.glob(os.path.join(input_directory, '*.pdf'))): 
    parsed = parser.from_file(filename) 
    text = parsed['content'] 
+0

Merci pour l'aide .... Yat-il un moyen plus rapide de faire cela pour les fichiers à grande échelle ?. – tumbleweed