この記事では、pythonを使って指定フォルダ内のファイルをランダムにひとつ抽出する方法をご紹介していきます。
なにかしらデータをランダムに選択したいときに、非常に役に立つスキルです。
ぜひやり方を覚えておきましょう。
それでは早速やっていきます。
必要なライブラリ
①glob
⇒pythonの標準ライブラリですのでインストールは不要です。
globはフォルダ内のデータ一覧を取得するときに使います。
☆合わせて読みたい
※以下の記事でglobの基本的な使い方を解説しています。
【python】フォルダ内ファイルを一括取得!ワイルドカードも使用可!
②random
⇒こちらも標準ライブラリですので、インストールは不要です。
このrandomは文字通り、ランダムになにかのデータをとってくるときに使います。
今回はglobでフォルダ内のデータ一覧をリスト化し、そのリストの中からrandomで適当にひとつデータを選択するということをやっていきます。
フォルダ内ファイルをランダム抽出する方法!
それでは早速ですが、指定したフォルダ内にあるファイルから、一つだけランダムにとってくるとう作業を行ってくれるサンプルコードをご紹介します。
※今回は.txtという拡張子をランダムにとってくるようにしています。
ここは状況に応じて修正して下さい。
◆データをランダム抽出するサンプルコード
import glob
import os
import random
list=glob.glob('探索するフォルダのフルパス/*.txt')
data=random.choice(list)
data1=os.path.split(data)[1]
print(data1)
このコードを実行することで、フルパス指定したフォルダ内のファイルを無作為にひとつだけとってくることが可能です。
(最後にprint表示させるようにしていますが、ここはなくてもOKです。)
◆サンプルコードのポイント解説
①list=glob.glob・・・
⇒ここで指定したフォルダ内のデータ一覧を取得しています。
(今回は拡張子が.txtのものに限定)
②data=random.choice(list)
⇒ここで①で取得したデータ一覧の中から無作為に一つだけデータを取り出しています。
取り出したデータはdataという変数に格納されています。
③data1=os.path.split(data)[1]
⇒②で取得したデータはフルパス形式で取得されています。
そのため、ファイル名だけの形に変換するために、この処理を行っています。
サンプルコードを実行
最後に先ほどのサンプルコードがしっかり動くのかを確認してみましょう。
今回は以下のフォルダに適用してみます。
とはいえ、一回だけ動かしてもよくわからないと思いますので、今回は先ほどのコードを連続で10回動かしてみましょう。
ということでサンプルコードを少し修正しました。
◆データをランダム抽出するサンプルコード(10回繰り返しVer.)
import glob
import os
import random
list=glob.glob('C:/Users/Desktop/study_python/test25/*.txt')
for i in range(10):
data=random.choice(list)
data1=os.path.split(data)[1]
print(data1)
このコードの実行結果は以下のようになりました。
test01.txtがやたらと選択されてますが、まぁ理論的には完全ランダムに抽出されているはずです。
というわけで問題なく先ほどのサンプルコードが機能することが確認できました。
おわりに
というわけで今回はpythonを使って指定フォルダ内のデータ名をランダムに一つ選択する方法をご紹介しました。
知っておくと様々な状況で役に立ちますので、ぜひ覚えておきましょう。
このように、私のブログでは様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント