Camelot-py не работает в циклах, но работает для отдельного файла - PullRequest
0 голосов
/ 05 февраля 2019

В настоящее время я работаю над проектом автоматизации для компании, и одна из задач требует, чтобы я перебрал каталог и преобразовал все файлы PDF в файл CSV.Я использую библиотеку camelot-py (которая была лучше, чем другие, которые я пробовал).Когда я применяю приведенный ниже код к одному файлу, он работает просто отлично;Тем не менее, я хочу, чтобы он прошел через все PDF-файлы в каталоге.Я получаю следующую ошибку с кодом ниже:

"OSError: [Errno 22] Недопустимый аргумент"

import camelot
import csv
import pandas as pd 
import os

directoryPath = r'Z:\testDirectory'
os.chdir(directoryPath)
print(os.listdir())
folderList = os.listdir(directoryPath)
for folders, sub_folders, file in os.walk(directoryPath):  
    for name in file:
        if name.endswith(".pdf"):
            filename = os.path.join(folders,name)
            print(filename)
            print(name)
            tables = camelot.read_pdf(filename, flavor = 'stream', columns= ['72,73,150,327,442,520,566,606,683'])
            tables = tables[0].df
            print(tables[0].parsing_report)       
            tables.to_csv('foo2.csv')

Я ожидаю, что все файлы будут преобразованы в файлы '.csv, но яполучить сообщение об ошибке «OSError: [Errno 22] Недопустимый аргумент».Моя ошибка, похоже, из строки 16.

1 Ответ

0 голосов
/ 28 июня 2019

Я не знаю, есть ли у вас такая же проблема, но в моем случае я сделал очень глупую ошибку, не поместив файлы в правильную директорию.Я получаю ту же ошибку, но как только я обнаружил проблему, скрипт работает в обычном цикле for.

Вместо методов to я использую массовый экспорт для экспорта результатов в sql, но это должноне будет проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...