当方windows11のVSC2022を使用し拡張機能もインストールしています。
tabula.pyで フォルダ内のPDFをBOM付きCSVに変換する
方法がわかりません下記にコードを記載します。どなたかご教示願います。
import os import os.path import shutil import csv import sys import glob from pathlib import Path import tabulaimport os.path import shutil import csv import sys import glob from pathlib import Path import tabula #以下ユーザー定義関数 https://www.javadrive.jp/python/userfunc/index1.html#section1 def is_empty(dir_path: str) -> bool: return len(os.listdir(dir_path)) == 0 path_p = 'D:\\150_その他\\改\\変換済' path_csvu8 = 'D:\\105_Python\\01_PDFtoCSV\\CSV_file\\01_utf_8_files' path_csvsj = 'D:\\105_Python\\01_PDFtoCSV\\CSV_file\\02_Shift-JIS_files' # 拡張子 e_p = 'pdf' e_c = 'csv' if is_empty(path_csvu8): print('CSV-U8 サブフォルダ無し') os.rmdir(path_csvu8) else: print('CSV-U8 サブフォルダ有り') shutil.rmtree(path_csvu8) os.makedirs(path_csvu8) if is_empty(path_p): print('PDF サブフォルダ無し') else: print('PDF サブフォルダ有り') for fd_path, sb_folder, sb_file in os.walk(path_p): for fol in sb_folder: os.makedirs(path_csvu8 + '\\' + fol) if is_empty(path_csvsj): print('CSV-JIS サブフォルダ無し') shutil.rmtree(path_csvsj) else: print('CSV-JIS サブフォルダ有り') shutil.rmtree(path_csvsj) os.makedirs(path_csvsj) if os.path.isfile(path_p): print('ファイルのみが有る') for fil in glob.glob(path_p + '\\*.pdf'): print(fil) #tabula.convert_into(path_p + '\\' + fil, path_csvu8 + '\\' + fol + '\\' + fil + '.csv', stream=True , output_format='csv', pages='all',java_options="-Dfile.encoding=utf-8") elif os.path.exists(path_p): print('ファイルまたはフォルダが有る') if glob.glob(path_p + '\\*.pdf'): print('ファイルが有る') for dir , subdir , files in os.walk(path_p): for fil in files: fil_names = fil[:-4] file_names = fil file_names_c = path_csvu8 + '\\' + fil_names +'.csv' if os.path.exists(file_names):回避する tabula.convert_into(path_p + '\\' + fil, path_csvu8 + '\\' + fil_names + '.csv', stream=True , output_format='csv', pages='all',java_options="-Dfile.encoding=utf-8") else: for dir , subdir , files in os.walk(path_p): for fol in subdir: fol_name = path_p + '\\' + fol for dir , subdir , files in os.walk(fol_name): for fil in files: fil_names = fil[:-4] file_names = fol_name + '\\' + fil file_names_c = path_csvu8 + '\\' + fol + '\\' + fil_names +'.csv' if os.path.exists(file_names): tabula.convert_into(file_names, file_names_c, stream=True , output_format='csv', pages='all',java_options="-Dfile.encoding=utf-8")