めも

メモ.

ランダムな文字列でディレクトリを作成 (Python3)

やりたいこと

ランダムにダミーの名前でディレクトリを作成したい. また, 名前を指定してディレクトリを作成したい, 既に存在する場合はエラーを出さない.

コード

ランダムな文字列を名前にしてディレクトリを作成

os.makedirs(dirname, exist_ok=True) にて exist_ok=Trueのオプションを指定して既に存在する場合もエラーを出さなくする.

"".join([random.choice(string.ascii_letters) for i in range(20)])で英語の大文字小文字をランダムに並び替えた文字列を20文字長で作成している.

import os
import random, string

def mkdirIfNotExists(dirname, randomName=False):
    if not dirname=="":
        os.makedirs(dirname, exist_ok=True)
    elif randomName:
        os.makedirs(os.path.join("./", "dummy_" + "".join([random.choice(string.ascii_letters) for i in range(20)])), exist_ok=True)

UUID4を生成

UUIDを用いて全く衝突がないように名前を指定することもできる.

uuid --- UUID objects according to RFC 4122 — Python 3.8.1rc1 ドキュメント

uuid.uuid4()でUUID4を生成し, マイナスをアンダーバーに置き換えている.

import uuid
for _ in range(10):
    print(str(uuid.uuid4()).replace("-", "_"))

出力

7beaab61_cbb9_469c_82ce_1cff82fc8825
1a51effa_bc3e_441d_8418_75787fdd04d1
15ee8cfd_935d_4857_a385_44540e30c460
d0f277ce_c357_446b_97a3_a2e97f9b7d89
20b27dab_7f17_4cb0_9118_a7705d002956
3ffe3aa8_0426_4be5_8be4_19e85bcfdf27
6c557766_71fc_4c79_8377_a4c366aa6f11
31f09a5e_9a53_4224_a837_721dc04810cd
d49cc5bb_d18b_489f_b326_3013e38271a3
bde8981c_91b0_4348_a61b_60d2a3b07c05

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。