超初心者向け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

メールアドレスが公開されることはありません。

関連記事

仮想環境でのSpyder利用法と実行場所

Pythonの仮想環境で「Spyder」を使うには、注意点があります。ここでは、仮想環境でのSpyderの使い方について解説したいと思います。 また、あわせて仮想環境を任意の場所で起動する方法について …

第2章 Pythonを使ってみよう

前回はPythonのダウンロードについて解説しました。この章では、さっそくPythonを使ってみましょう! 解説内容 Anaconda Promptを起動しよう Pythonで文字を出力しよう(pri …

第8章 Pythonの演習問題(解答編)

この章では、7章の「Pythonの演習問題を解いてみよう」で出題した演習の解答コードと、その解説を行っていこうと思います。 ※ただし、解答コードはあくまで一例であり、出力があっていればそのコードも正解 …

pyinstallerを使ったPythonのexe化(重くならない方法)

今回は、「pyinstaller」を使ってPythonをexe化して配布できるようにする方法について解説したいと思います。 Pythonをexe化することで、Pythonの環境を構築していない人でも使 …

numpyの使い方(配列)とlistとの違いを比較(Python)

Pythonで配列を扱う際にまず学ぶのが、標準搭載されている「list」だと思いますが、Pythonにはもう一つ、「numpy」という外部ライブラリがあります。 ですが、この2つの何が違うのか、どう使 …

スポンサーリンク


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

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