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

如何使用for循环(python)将文件从特定路径传递到特定函数,python,python-3.x,Python,Python 3.x,嗨,我正在尝试使用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\D

嗨,我正在尝试使用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)
我得到的错误如下图所示


arr
包含目录
C:\Users\Ramesh\Desktop\Parsing\u Project\Resumes\u pdf
中的文件名

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

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

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

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

导入操作系统
arr=os.listdir('C:\\Users\\Ramesh\\Desktop\\Parsing\u Project\\resume\u pdf')
打印(arr)
def转换(文件):
f=打开(文件“r”)
打印(f.readline())
对于arr中的文件:
转换('C:\\User\\Ramesh\\Desktop\\Parsing\u Project\\resume\u pdf\\\'+文件)

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

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

以下是我使用的代码:


谢谢您的帮助:)

它显示“扫描字符串时下线”,然后我尝试了
myfile=convert(r'C:\Users\Ramesh\Desktop\Parsing\u Project\Resumes\u pdf'+file,outputDir)
但输出的问题是“无法打开文件”C:\Users\Ramesh\Desktop\Parsing\u Project\Resumes\u pdfAkhil.pdf”:没有错误。“如何在Parsing\u Project和Akhil.pdf之间带“\”?@KrishnaChaurasia反斜杠必须用反斜杠转义才能成为真正的反斜杠,否则它们将转义以下字符。@RahulRamesh您的文件路径字符串前面有一个r。删除它,它应该会起作用。@RahulRamesh,请以后以文本形式在中发布错误@Rahullamesh错误为文本是,但不在评论中,请!如果您更改了代码并出现另一个错误,请更新代码和问题中的错误!我用glob函数解决了这个问题。你想看看密码吗?@RahulRamesh是的course@RahulRamesh用它来回答并接受这个答案
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)