Pythonはプログラミング言語の中でも「軽量」と呼ばれる部類に属する。確かにPythonを使うと軽快に日々の定型処理を自動化できる。今回は「フォルダ作成」に注目しつつPythonで定型処理をこなす筆者の仕事術を紹介しよう。

  • Windowsで100個の連番フォルダを作成したところ

    Windowsで100個の連番フォルダを作成したところ

Pythonでフォルダ作成する方法

最初にせっかちな読者の皆さんのために、Pythonで連番フォルダを100個作成するプログラムから紹介しよう。以下の2行のプログラムを実行するとdoc001、doc002…doc100までの連番フォルダを一瞬で作成できる。

import os
for i in range(1,100+1): os.mkdir(f'doc{i:03}')

Pythonがインストールされていることが前提であるが、最速でプログラムを実行する手順は次の通りだ。

【Windows10/11の場合】

  • (1) PowerShellを起動 - [Win]+[R]キーを押して「powershell」と入力
  • (2) フォルダを作成したいディレクトリに移動 - コマンド「cd (パス)」を実行
  • (3) Pythonの対話環境(シェル)を起動 - コマンド「python」を実行
  • (4) 上記プログラムを記入して実行。なお入力後に2回[Enter]を押す。

【macOSの場合】

  • (1) ターミナル.appを起動 - Spotlightで「ターミナル.app」と入力
  • (2) フォルダを作成したいディレクトリに移動 - コマンド「cd (パス)」を実行
  • (3) Pythonの対話環境(シェル)を起動 - コマンド「python3」を実行
  • (4) 上記プログラムを記入して実行。なお入力後に2回[Enter]を押す。

上記の手順で実行すると、次のように連番フォルダが作成される。

  • macOSで100個の連番フォルダを作成したところ

    macOSで100個の連番フォルダを作成したところ

なお、Pythonの対話環境を終了するには、プログラム実行後に「quit()」と入力するか、[x]ボタンを押してターミナル画面を直接閉じれば良い。

フォルダ名を「doc001」ではなく「作業0001」としたい場合

上記のプログラムでは、doc001、doc002…doc100までの連番フォルダを作成したが、「作業0001」のようなフォルダにしたい場合もあるだろう。

この場合、次のように、上記の「f'doc{i:03}'」のところを「f'作業{i:04}'」と変えれば良い。

import os
for i in range(1,100+1): os.mkdir(f'作業{i:04}')

まず、Pythonでフォルダを作成するには「os.mkdir(フォルダパス)」のように、mkdirメソッドを利用する。

次に、処理を繰り返したい場合にはfor文を使う。for文は「for i in range(開始値,終了値+1): (繰り返すプログラム)」のように記述する。

そして、今回、作成するフォルダパスの指定をする部分にf-stringと呼ばれる文字列「f'...'」を指定している。ここで、'...'の中に変数を「'...{i}...'」のように記述すると、変数の値を文字列の中に埋め込むことができる。また、f-stringでは書式の指定が可能で「{i:03}」のように記述すると、001, 002, 003...のようなゼロで指定桁を埋めた連番を指定できる。

(おまけ)もしも不要なフォルダを100個つくってしまったら

なお、今回のプログラムを実行して、無駄に不要なフォルダを作ってしまったら、次のコマンドを実行して空フォルダを削除しよう。WindowsでもmacOSでも、以下のシェルコマンド(またはDOSコマンド)を実行することで「doc」から始まる空フォルダを削除できる。

rmdir doc*

軽量なPythonをより軽快に使う仕事術

上記の手順にすると、4ステップも必要だが、実際のところ慣れると10秒以内に実行できる。

とは言え、PowerShellやターミナルが苦手という人も多いだろう。Pythonにはグラフィカルな画面で対話的にプログラムを実行できるIDLEが付属しているので、これを使うこともできる。

  • IDLEを使うと対話的にプログラムを実行できる

    IDLEを使うと対話的にプログラムを実行できる

また、ブラウザ画面で対話的にプログラムを実行できるJupyter Notebookなどのツールもある。これらのツールを使ってプログラムを実行するのは確かに役立つ。少しじっくりとプログラムを作りたい時には、このツールを使うとプログラムを少しずつ入力して処理結果を確かめながらプログラムの作成が可能だ。

  • Jupyter Notebookを使うとブラウザから対話的にプログラムを実行できる

    Jupyter Notebookを使うとブラウザから対話的にプログラムを実行できる

しかし、今回のように「瞬間的にフォルダを100個作るだけ」であれば、グラフィカルなツールを使うまでもない。また、そうしたツールが起動するのを待つのも惜しい。と言うのも、ターミナル(WindowsのPowerShellやコマンドプロンプト、macOSのターミナル)は大抵の場合一瞬で起動する。

しかも「ハッカー」と聞いて思い浮かぶ映像はどんな姿だろうか。きっと真っ黒の画面を前に、何かしらのコマンドを高速でタイプするところだろう。つまり、多くの偉大なハッカー達はターミナル画面にコマンドを入力することを好んでおり、実際にこのスタイルでの作業は非常に生産性が高い。

なお、グラフィカルなウィンドウに対して操作を行う「GUI(Graphical User Interface)」に対して、ターミナルにコマンドを入力するインターフィエイスを「CUI(英語: Character User Interfac)」と呼ぶ。

なぜ、CUIが好まれるのかと言えば、単純に目的に到達するまでの手順が速いからだ。コマンドを打ち込むと言うと、そんなにたくさんのコマンドを覚えられないと思う人もいるが、昨今のターミナルでは、賢い補完機能が使えるので、それほど覚えることが多いわけではない。

なお、補完機能を試すには、ターミナルを開いて数文字タイプしたら[Tab]キーを数回押してみよう。選択肢が次々と表示される。以下は、macOSでターミナルを開き、「pyt」とタイプして[Tab]キーを押したところだ。pytestやpython3などが表示されて、一覧から続きを選ぶことができる。

確かに、ターミナル上での作業を覚えるには少しの学習が必要だ。しかし操作を覚えた後で、節約できる時間を考えれば、学ぶだけの価値がある。

まとめ

以上、今回は100個のフォルダをPythonで作成する方法を紹介した。もしも手作業で100個のフォルダを作成しなければならないとしたら大変な労力が必要だ。しかし、Pythonを使えばプログラミングの手間も含めて1分以内に実現できる。しかも連番フォルダを作る程度であれば、今回見たように2行(実質1行)のプログラムで良い。Pythonを賢く使って日々のPC作業を自動化しよう。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。