pythons初心者です。
pythonでファイル名を(ファイル名と前半部分が一致する)フォルダへの移動をするコードを考えております。
【状況】
・未分類のフォルダ(下記のコードだと’invoice2'フォルダ)に分類前のPDF ファイルが格納されております
・PDFファイル名は「1001_aaa.pdf」,「2132_abcd.pdf」のように前半部分は「****_」の形式(数字4文字にアンダーバー)にしております
・分類先のフォルダは、フォルダ名が「1001_㈱××商事」、「2131_㈲×××」のようになっております
・(ファイル名の前半部分の数字4文字)と(フォルダ名の前半部分の数字4文字)が一致するものがあります
【実現したいこと】
・ファイル名の前半の数字4文字である「****」箇所と前半部分が一致するフォルダに格納したいです
・例だとファイル:「1001_aaa.pdf」をフォルダ名「1001_㈱××商事」に格納したいです
【実行したこと】
下記のようなコードを作成しました
import shutil import os #file名の取得 files=os.listdir('./ocr/invoice2') #fileを1つずつ取り出す for file in files: file_name=os.path.splitext(os.path.basename(file)) file_name=file_name[0] print(file_name) path1=f'./ocr/invoice2/{file_name}.pdf' path2=f'./ocr/invoice3/{file_name[:4]}/{file_name}.pdf' #ここがうまくいかない os.rename(path1,path2)
【うまくいかない理由(推定)】
・たとえばフォルダ名が「1001_㈱××商事」のフォルダを指定する際に
f'./ocr/invoice3/{file_name[:4]}/'
のようにしてますが、これだと フォルダ名が「1001」のようにしないとならないのかと思います。
そのため、 f'./ocr/invoice3/{file_name[:4]}+{*}/' のようにワイルドカードを利用してフォルダ名を指定しようと思いましたがうまくいきませんでした。
ネットなどで調べているのですが、うまい解決方法が見当たらないです。
アドバイスをもらえますと助かります
よろしくお願いいたします
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/23 22:24