【问题标题】:TypeError: argument of type 'WindowsPath' is not iterable - in open of pdf file with pythonTypeError:“WindowsPath”类型的参数不可迭代 - 使用 python 打开 pdf 文件
【发布时间】:2016-03-24 14:11:57
【问题描述】:

早安,

我想从目录中打开具有特定名称的 pdf 文件。这些文件名由 csv 文件输入提供,位于第二列。

我尝试了以下代码,但收到一条错误消息:

TypeError: 'WindowsPath' 类型的参数不可迭代

我该如何解决这个问题以及要打开的pdf文件 根据输入文件?

还有一个问题:如果 输入名称与 pdf 标题不完全匹配,但我仍然想要 打开这个包含输入名称的文件?

import csv
import os
from pathlib import *

dir_path = Path('D:\\path\\pdf files')
pdf_files = dir_path.glob('*.pdf')

file1=open('INPUT.csv','r')
reader=csv.reader(file1,delimiter=';')
for pdf_file in pdf_files:
    for item in reader:
        file_name=item[1]
        print(file_name)#just to see the file name that I want to open 
        if file_name in pdf_file:
            os.startfile("%s"%(pdf_file))
file1.close()

提前谢谢你!

【问题讨论】:

    标签: python pdf


    【解决方案1】:

    if file_name in pdf_file 行中的问题:pdf_file 不是字符串,而是pathlib.Path 的实例,使用name 获取文件名作为字符串:

    if file_name == pdf_file.name
    

    如果您想检查 file_name 不带 ext 是否包含在 pdf_file 名称中:

    file_name.split('.')[-2] in f.name  # ('example' in 'some_example.pdf') == True
    

    【讨论】:

    • 我问了一个相关问题here。如果你也能看看那个,我将不胜感激。 ?
    猜你喜欢
    • 2021-01-07
    • 2012-04-26
    • 1970-01-01
    • 2022-11-08
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多