5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでファイル名をランダムな文字列に変更する

Posted at

ファイル名をランダムな文字列に変更するスクリプトを書きました。
ランダム文字列を正規表現で指定できるrstrというライブラリを使いました。

環境

Python 3.7.3
rstr 2.2.6

背景

テストデータでAWS S3上に縦横サイズがさまざな画像を1000〜5000枚を用意する必要がありました。
テスト対象のスクリプトではS3.listObjectsメソッドを使っています。
S3.listObjectsメソッドではリストのソート順がファイル名文字列ソートです。
ローカルでコピーを繰り返して画像ファイルを複製してS3にアップロードすると、ファイル名文字列ソートではサイズが異なる画像がばらつかないので、ランダムな文字列でリネームするスクリプトを用意しました。
諸事情あって、先頭2桁を数字としました。

ディレクトリ構成

構成は以下です。

├── script.py
└── tmp
    ├── test_1.jpg
    ├── test_2.jpg
    └── test_3.jpg

script

script.py
import glob
import rstr
import os
import os.path


def main():
    files = glob.glob("./tmp/*")
    for file in files:
        dir, ext = os.path.splitext(file)
        dir_path = os.path.dirname(file)

        rename_str = dir_path + '/' + rstr.xeger(r'^[0-9]{2}[0-9a-zA-Z0-9]{10}') + ext

        os.rename(file, rename_str) 

if __name__ == "__main__":
    main()

実行結果


├── script.py
└── tmp
    ├── 04C523E7j5l1.jpg
    ├── 91G0nUvJEzEv.jpg
    └── 93PVR3tNKzJc.jpg

参考サイト

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?