如何使用for循环(python)将文件从特定路径传递到特定函数

2024-09-28 23:04:23 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试使用python将一堆pdf转换成图像

这是我的密码:

有人能帮我澄清一下我做错了什么吗

import os
import cv2
from pdf2image import convert_from_path
import os
import sys
import time
import cv2
import numpy as np
import pytesseract
import threading


arr = os.listdir(r'C:\Users\Ramesh\Desktop\Parsing_Project\Resumes_pdf')

print(arr)

outputDir = (r"C:\Users\Ramesh\Desktop\Parsing_Project\Resumes")


def convert(file, outputDir):
    outputDir = outputDir + str(round(time.time())) + '/'
    if not os.path.exists(outputDir):
        os.makedirs(outputDir)

    pages = convert_from_path(file, 500)
    counter = 1
    for page in pages:
        myfile = outputDir +'output' + str(counter) +'.jpg'
        counter = counter + 1
        page.save(myfile, "JPEG")
        return (myfile)


for file in arr:
    myfile = convert('C:\\User\\Ramesh\\Desktop\\Parsing_Project\\Resumes_pdf\\' + file, outputDir)

我得到的错误如下图所示

error


Tags: pathfromimportconvertpdftimeoscounter
3条回答

arr包含目录C:\Users\Ramesh\Desktop\Parsing_Project\Resumes_pdf中文件的名称

您试图打开一个文件,但位置错误。 尝试将代码更改为:

for file in arr:
    myfile = convert('C:\\User\\Ramesh\\Desktop\\Parsing_Project\\Resumes_pdf\\' + file, outputDir)

请注意,反斜杠必须用反斜杠转义,否则python将无法识别结束引号,并给出EOL(行尾)错误

请尝试此代码,它只打开pdf文件并读取一行,不涉及pdf2image

import os

arr = os.listdir('C:\\Users\\Ramesh\\Desktop\\Parsing_Project\\Resumes_pdf')

print(arr)

def convert(file):
    f = open(file, "r")
    print(f.readline())

for file in arr:
    convert('C:\\User\\Ramesh\\Desktop\\Parsing_Project\\Resumes_pdf\\' + file)

如果它打印出的行没有错误,pdf文件和路径也正常,因此您的pdf2image必须被破坏,否则请发布错误,以便我可以进一步帮助您

我找到了一种从特定路径传递文件地址的方法,并使用blob函数在每个文件上循环

以下是我使用的代码:

address_list = []
outputDir = (r"C:\Users\Ramesh\Desktop\Parsing_Project\Resumes")


def convert(file, outputDir):
    outputDir = outputDir + str(round(time.time())) + '/'
    if not os.path.exists(outputDir):
        os.makedirs(outputDir)

    pages = convert_from_path(file, 500)
    counter = 1
    for page in pages:
        myfile = outputDir +'output' + str(counter) +'.jpg'
        counter = counter + 1
        page.save(myfile, "JPEG")
        return (myfile)



for file in glob.glob(r'C:\Users\Ramesh\Desktop\Parsing_Project\Resumes_pdf/**/*.pdf', recursive=True):

    address_list.append(file)
    
print(address_list)

for file in address_list:
    
    myfile = convert(file, outputDir)

谢谢你的帮助:)

相关问题 更多 >