2016-03-24 14 views
1

良い一日とpdfファイルのオープンで、私はディレクトリから、特定の名前を持つPDFファイルを開きたいTypeError例外:型「WindowsPath」の引数は反復可能ではありません - のpython

。これらのファイル名は、2番目の列にあるcsvファイル入力から提供されます。

私はfollwingコードを試してみましたが、私はエラーメッセージ受信:

TypeError: argument of type 'WindowsPath' is not iterable

私はこの問題とpdfファイルが入力ファイルに従って 開くことを解決することができますどのように?

もう1つの問題: の入力名が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() 

ありがとうございます!ラインif file_name in pdf_file

答えて

0

問題:pdf_fileは、文字列ではなく、pathlib.Pathのインスタンス、文字列としてファイル名を取得するためにnameを使用します。

if file_name == pdf_file.name 

あなたは内線なしfile_namepdf_file名に含まれているかどうかを確認したい場合は:

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