python 初心者です。
(実現したいこと)
同一フォルダに保存してある複数のテキストファイルの名前を変更させたい。
具体的には、以下のとおりです
1.同一フォルダのtxtファイルを1つづつ読み込ませ、CSVファイルのname(会社名)との一致を検索する
csvファイルは、下記のように会社名が記載されているイメージです
|name|列2|列3|
|ABC company|:--:|--:|
|山田商事|||
2.一致された場合は、txtファイル名を、CSVのnameに変更する(’ABC company.txt)
3.これを繰り返す
下記のようなコードを作成しました
import pandas as pd import csv import os import openpyxl import glob code_list=pd.read_csv('./ocr/company_list.csv',encoding='cp932')##pandasに切り替え済み def my_func(i): x=code_list.loc[i,'name'] for l in glob.glob("./ocr/invoice(txt)/*.txt"): file_name=os.path.splitext(os.path.basename(l))[0] with open(l, 'r', newline='') as f: lines = f.readlines() for line in lines: if line.find(x) >= 0: f.close()#0611 path1=f'./ocr/invoice(txt)/{file_name}.txt' path2=f'./ocr/invoice(txt)/{x}.txt' os.rename(path1,path2) for i in range(len(code_list)) : my_func(i)
しかし、このコードは1つ目のtxtに対しては、ファイル名の検索、ファイル名の変更を実行しますが複数の意ファイルに対して繰り返し処理ができません。
下記のようなエラーが発生します
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。: './ocr/invoice(txt)/5月請求書.txt' -> './ocr/invoice(txt)/ABC company.txt'
2日ばかり悩んでいるのですが、解決ができません。
アドバイスをいただけれると助かります。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/11 04:40