前提・実現したいこと
Python初学者です。
<実現したいこと>
新しいVerのファイルが新Verフォルダに保存されます。そのファイルを旧Verのファイルの場所に移動、旧Verのファイルはバックアップフォルダに移動することを目標としたプログラムを考えています。ファイルはExcel形式で保存されています。
具体的には、ファイル名「---_Ver1.1.xlsx」を参照し、違うフォルダに入っている「---_Ver1.0.xlsx」ファイルのパスを取得することを実現したいです。
(---)は任意の文字列です。この(---)を参照して旧Verのファイルのパスを入手したいです。
そのため、任意の文字列を参照し、その文字列が含まれているファイルの位置をサーチ、またそのファイルのパスを取得する方法があれば教えていただきたいです。
調べたところ、osモジュールからglobを使用して何かする感じなのかなと思いましたが、そこから手が止まってしまいました。
下にディレクトリ構造について記します。
初学者のため、皆様の力をお借りしたいです。
参考ページでも構いませんので、ぜひ回答の程よろしくお願いします。
ディレクトリ構造
temp ├── 新Verファイル仮置き場 │ ├── ---_Ver1.5.xlsx │ └── ^^^_Ver2.2.xlsx └── dir1 │ ├── dir3 │ └── ---_Ver1.4.xlsx └── dir2 └── dir4 │ ├── ^^^_Ver2.1.xlsx │ └── ***_Ver1.0.xlsx │ └── バックアップフォルダ ├── ---_Ver1.3.xlsx └── ^^^_Ver2.0.xlsx └── ・・・(今までのファイルが入っている)
上記の構造から実現したいことは、新Verファイル仮置き場から「---」、「^^^」を参照し部分一致したファイルでバックアップフォルダに入っていないファイルを探す。
「---_Ver1.5.xlsx」の場合、temp\dir1---_Ver1.4.xlsx が該当する。このファイルの位置に「---_Ver1.5.xlsx」を保存し、temp\dir1---Ver1.4.xlsx はバックアップフォルダに移動。
これを新Verファイル仮置き場が空になるまで処理を続ける。
この処理を終えたときのディレクトリ構造は下記の通りになる。
処理終了後のディレクトリ構造
temp ├── 新Verファイル仮置き場 └── dir1 │ ├── dir3 │ └── ---_Ver1.5.xlsx └── dir2 └── dir4 │ ├── ^^^_Ver2.2.xlsx │ └── ***_Ver1.0.xlsx │ └── バックアップフォルダ ├── ---_Ver1.3.xlsx ├── ^^^_Ver2.0.xlsx ├── ---_Ver1.4.xlsx ├── ^^^_Ver2.1.xlsx └── ・・・(今までのファイルが入っている)
試したこと
ここから全く手が動きません。色々調べていますがあまり納得のいくページが見つからないため、なにか参考になるページがあれば教えていただけると幸いです。
import glob import os path = r"C:\Users\temp\新Verファイル仮置き場" os.chdir(path) file_list = glob.glob('*.xlsx')
回答1件
あなたの回答
tips
プレビュー