我得到了Python中的“FileNotFoundError:”,即使在同一目录中成功找到了一些文件

2024-04-20 06:04:45 发布

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

我想重命名此目录中的PDF文件:

directory

根据我在此代码中创建的列表:

import pdfplumber
import os


pdf_name = []

for filename in os.listdir("."):
    if filename.endswith(".pdf"):
        with pdfplumber.open(filename) as pdf:
            page = pdf.pages[0]
            text = page.extract_text()

            li = text.split(' ')
            for item in li:
                if item == 'pp.' or item == 'p.':
                    next_element = li[li.index(item)+1]
                    pdf_name.append(next_element)
                    pdf_name = [x.split()[0] for x in pdf_name]
                if item == 'Front' or item == 'Back':
                    pdf_name.append(item)
                    pdf_name = [x.split()[0] for x in pdf_name]

for filename in os.listdir("."):
    if filename.endswith(".pdf"):
        for item in pdf_name:
            src = item + ".pdf"
            dst = filename
            os.rename(src, dst)

print(pdf_name)

但我收到了这个错误信息:

error message

尽管正如您在文件夹中看到的,211-225.pdfFront.pdf文件已经成功重命名,但对于其余文件,我得到了上面提到的错误


Tags: 文件textnameinimportforifpdf
2条回答

我认为您的代码多次重命名同一个文件(使用内部for item in pdf_name循环)。在第一次重命名之后,文件显然不再以旧名称存在

您发布的代码存在多个问题

for filename in os.listdir("."):
    if filename.endswith(".pdf"):
        for item in pdf_name:
            src = item + ".pdf"
            dst = filename
            os.rename(src, dst)

在此块中,您试图将不同的源文件重命名为已存在的相同目标文件。(i) 我认为您交换了src和dst,(ii)重命名文件后,它将具有新名称,因此您不能多次重命名。您必须复制或重新思考循环

相关问题 更多 >