超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

python Python初心者講座

第14章 Pythonでフォルダを作成してみよう

投稿日:2020-04-28 更新日:

この章では、ファイルに記入したフォルダ名を読み取り、複数のフォルダを一括で作成する方法について解説します。

解説内容

 

1.フォルダを作成してみよう

1.フォルダの作成について

Pythonによるフォルダの作成には、「os.mkdir」「os.makedirs」を使用します。ただし、基本的に「os.makedirs」を使用できれば問題ないため、「os.makedirs」について詳しく解説します。

「os.mkdir」は制約が多く、使いにくい。

では、下のコードを保存し、実行してみてください。

import os
os.makedirs('outfolder')

すると、「outfolder」というフォルダができたと思います!このように、フォルダを作成するには、「os.makedirs(‘フォルダ名’)」で作成することができます。

※この時、ライブラリである「os」をインポートするのを忘れないように!

 

そして、フォルダの中にフォルダを作ることもできます。下のコードを実行してみてください。

import os
os.makedirs('outfolder1\outfolder2')

すると、「outfolder1」というフォルダの中に「outfolder2」というフォルダができたと思います。

このように、フォルダの中にさらにフォルダを作りたい場合、Macは「/」(スラッシュ)、Windowsは「\」(バックスラッシュ)を使って繋ぐことで、作成できます。

※「mkdir」では、このフォルダの中にさらにフォルダを作るといった操作ができません。

 

2.フォルダが存在する場合のエラー回避

次に、最初のコードをもう一度実行してみましょう。念のため下に再度載せておきます。

import os
os.makedirs('outfolder')

すると、下のように「既に存在するファイルを作成することができません」というエラーが生じてしまいます。

このエラーを回避するには、「os.makedirs」のオプションである「exist_ok」というものを使います!

 

これを用いて、「exist_ok=True」とすることで、このエラーを回避できます。では下のようにコードを変更し、実行してみてください。

import os
os.makedirs('outfolder', exist_ok=True)

すると、何度実行してもエラーが出ませんね。これでフォルダが存在する場合でもエラーを回避することができました!

※ちなみに、「mkdir」だと、このエラーを回避するには「条件分岐」のifをわざわざ作ったりする必要があり、めんどくさいです。

 

2.ファイルからフォルダ名を読み取って作成

いよいよこの章のポイントである「ファイルからフォルダ名を読み取っての作成」を解説したいと思います。

といっても、基本的には第4章の「ループ処理」、第11章の「テキストファイルの読み込み」、それと今回の「フォルダ作成」を組みわせたものとなります。

では、まず読み取るフォルダ名を記入したテキストファイルを作成します。下のように記入したテキストファイルを「input.txt」という名前で保存してください。

out1
out2
out3

次に、同じ場所に下のコードを保存し、実行してください。

import os
f = open('input.txt', 'r', encoding='utf-8')
data = f.readlines()
f.close()

for name in data:
    name = name.strip()
    os.makedirs(name, exist_ok=True)

すると下のように「out1」、「out2」、「out3」という3つのフォルダができましたね!

今回は少しコードが複雑に見えるので、復習も兼ねて丁寧に解説していきます。

 

まず1行目は、「os」というライブラリを使用するためにインポートする、という処理になります。

import os

 

次に2行目ですが、先ほど作成した「input.txt」というファイルを「読み取りファイル」として読み込んでいます。ちなみに、「encoding=’utf-8’」により日本語にも対応させています。

f = open('input.txt', 'r', encoding='utf-8')

 

3行目は、「readlines」を使い「input.txt」を読み込んで「data」という変数に入れる、という処理です。ちなみに、「readlines」を使うことで行ごとに「list」として値を取得できましたね。

data = f.readlines()

 

4行目は、開いたテキストファイルを閉じています。開いて使用し終わったら必ず閉じる、と解説しましたね。

f.close()

 

さて、最後に「ループ処理」を行っている5~7行目ですが、まず5行目は「data」に入っているデータを一つずつ「name」に入れてループを回す、という処理になります。

for name in data:

そして、6行目ですが、ここでdataの中身を確認すると下のように改行コード「\n」が入っていることが分かります。そこで、「strip()」を使って改行コードを除去する、といった処理を行っています。

そして最後に「os.makedirs」を用いてフォルダを作成すれば完成です!

    name = name.strip()
    os.makedirs(name, exist_ok=True)

 

このように、今まで学んできた「ループ処理」や「ファイルの読み込み」等と組み合わせることで、いろいろな処理ができるようになります!

 

3.まとめ

今回は、ファイルに記入したファイル名を読み取り、複数のファイルを作成する方法について解説しました。ポイントをまとめると以下のものです。

Point
  • Pythonによるフォルダの作成には「os.mkdir」か「os.makedirs」を使う
  • 「os.makedirs」の方が制約が少なく便利なのでこちらを使おう
  • 「os.makedirs(‘フォルダ名’)」でフォルダ作成
  • フォルダの中にさらにフォルダを作りたい場合、Macは「/」(スラッシュ)、Windowsは「\」(バックスラッシュ)を使って繋ぐ
  • 「exist_ok=True」とすることで、ファイルが既にある場合のエラー回避

 

今回解説したことを使えば、大量にフォルダを作成する必要が出たときにとても便利です!今までの内容を理解していればそこまで難しくないので、しっかり使えるようになりましょう!

>>前回:第13章 Pythonでテキストファイル・csvファイルへの書き出しをしてみよう

>>次回:第15章 Pythonでグラフを作成してみよう(matplotlib)

スポンサーリンク




スポンサーリンク




-python, Python初心者講座
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Pandasの基本(dataframe作成、データ抽出、csv読み込み等)

今回は、Pyhonでデータを扱う際に使えるととても便利な「Pandas」について解説したいと思います。 また、データを扱う際に使用する代表的なライブラリとして「numpy」がありますが、2つのライブラ …

第3章 Pythonの変数を使ってみよう

この章では、第2章で少し話が出てきた「変数」について、実際に使ってみましょう。変数は、プログラミングを行う上で大切なポイントなので、しっかり学んでいきましょう。 解説内容 変数って何? 変数を使ってみ …

Pythonでネットの情報を取得しよう(webスクレイピング)

Pythonは、ほかの言語に比べネットからデータを取ってくる事が得意な言語です。この、ネットからデータを取ってくることを「webスクレイピング」と呼びます。 普段私たちが見ているサイトの情報などは、基 …

2次元平面分布図における範囲外の凡例や色合いの設定(Python)

今回は、Pythonで平面分布図を作成する際の色合いや、凡例の設定、また凡例の範囲外の色の設定について解説したいと思います。 解説内容 平面分布図の色合いの設定 平面分布図の凡例の設定 平面分布図にお …

Pandasとnumpyの違いや変換について(どっちを使えばいいの?)

今回は、Pyhonでデータを扱う際に使えるととても便利な「Pandas」について、同じくデータを扱う際に使用する代表的なライブラリである「numpy」と比較して解説したいと思います。 「Pandas」 …

スポンサーリンク





初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。