Pythonでファイル・フォルダ操作 〜osモジュールでの名前の取得 os.listdir、フォルダ作成 os.mkdir〜

スポンサーリンク

osモジュールとshutilモジュール

前にInkbirdの温度・湿度データをpythonで読み込む際、shutilモジュールでフォルダを中のファイルごと消せるということを紹介しました。

Pythonで温度・湿度ロガー IBS-TH1 PLUSのデータを分析してみる その2:フォルダの確認・作成&再作成
インポートとパスの確認前回、温度・湿度ロガーのデータ分析のため、フォルダ構造を考えてみました。フォルダ構造が決まったので、今回はこの部分のプログラミングをしてみましょう。まずは今回使うosモジュールとshu...

まだshutilモジュールの解説を書いていなかったので書きたいのですが、shutilモジュールは何がいいのか分かってもらうために、まずはosモジュールにある同じ様な機能を紹介していきます。

そしてshutilモジュールを紹介して、比較することにより、より理解が深まることでしょう。

ということで今回から数回に分けて、osモジュールを使ってファイルやフォルダを操作してみましょう。

ちなみにosモジュールでフォルダ間を移動したり、パスを表示したりというのは前に紹介していますので、良かったらこちらの記事もどうぞ。

Pythonのosモジュールによるフォルダ間移動とファイル名取得 〜絶対パスと相対パスの違いを添えて〜
フォルダ間移動前にcsvファイルの書き込みに関して説明しました。その際はプログラムと読み込むファイルは同じフォルダにある必要があり、また新規作成されるファイルは同じフォルダに作成されました。しかしプログラムとファイ...

また先に使いそうな操作も解説していますので、こちらの記事も参考にしてください。

Pythonでフォルダの作成と削除(mkdir、 rmdir、shutil.rmtree)
フォルダの作成:os.mkdir()前にosモジュールを使って、フォルダ間の移動やファイル名の取得を行いました。そこまで解説しておきながら、フォルダを作成したり、削除したりの方法を解説していないことに今頃になって気...
スポンサーリンク

練習用フォルダの準備

まずは色々と試していく上で、中身がぐちゃぐちゃになってもいいように、練習用のフォルダをお好きなところに適当にフォルダを作ってください。

私はデスクトップに「os_module_test」というフォルダを作りました。

もちろんフォルダを作っただけなので、中身は空です。

これでAnacondaを起動し、作ったフォルダに新しいPythonプログラムを作成します。

Anacondaの基本操作に関してはこちらの記事で解説指定ますので、良かったらこちらもどうぞ。

404 NOT FOUND | 3PySci
STEAM教育応援サイト〜Pythonと3Dプリンタ、ガジェット紹介〜

空のプログラムが開いたら、一行目でosモジュールをインポートします。

import os

そして「Shift + Enter」を押して実行します。

これで準備完了です。

スポンサーリンク

ファイル・フォルダ名の取得:os.listdir(“パス”)

まずはファイル・フォルダの表示方法を試してみましょう。

現在いる場所(os_module_testフォルダ)のファイル・フォルダを表示を取得するには、os.listdir()を使います。

この場合、ファイル・フォルダ名はリスト化されます。

リストに関しての記事もありますので、良かったらどうぞ。

Pythonのリスト(配列)の基本〜プログラミング初心者はまずはこれだけ〜
リストとは?今回はリストとか配列と呼ばれる仕組みに関して解説します。前に変数に関して、説明しました。その時、変数名と変数は一対一の関係でした。list1 = "Hello World"print(...

また表示するにはprint関数を用います。

print(os.listdir())

実行結果
['.DS_Store', 'Untitled.ipynb', '.ipynb_checkpoints']

実行結果で得られた’.DS_Sore’はMacが勝手に作る隠しフォルダなので気にしないでください。

また’.ipynb_checkpoints’はAnacondaが勝手に作る自動セーブ用フォルダですので、こちらも気にしないでください。

‘Untitled.ipynb’は今、色々いじっているPythonプログラムです。

ちなみにファイル、フォルダ名の最初にピリオド(.)が付いているものは隠しフォルダで通常はみることができないフォルダになります。

そのためFinderでフォルダを見てみると、’Untitled.ipynb’しかありません。

またos.listdir()の括弧の中にフォルダ名やパスを入力するとその場所のファイル・フォルダ名を取得することができます。

現在はフォルダがないので、後ほど試してみましょう。

スポンサーリンク

フォルダの作成:os.mkdir(“フォルダ名”)

フォルダを作成するにはos.mkdir()を使います。

とりあえずfolder1というフォルダを作ってみましょう。

作るだけでは作成されたか分からないので、先ほどと同様にprint(os.listdir())でファイル・フォルダを表示させます。

os.mkdir("folder1")

print(os.listdir())

実行結果
['.DS_Store', 'Untitled.ipynb', '.ipynb_checkpoints', 'folder1']

確かにfolder1が作成されています。

ついでにfolder2というフォルダも作成しておきましょう。

os.mkdir("folder2")

print(os.listdir())

実行結果
['.DS_Store', 'Untitled.ipynb', 'folder2', '.ipynb_checkpoints', 'folder1']

ちなみにもうすでにある名前のフォルダを作成しようとするとエラーになりますので、注意してください。

試しにfolder2を作成したセルを再度実行してみます。

os.mkdir("folder2")

print(os.listdir())

実行結果
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-7-f2bd33d9d50a> in <module>
----> 1 os.mkdir("folder2")
      2 
      3 print(os.listdir())

FileExistsError: [Errno 17] File exists: 'folder2'

今回はまずはファイル・フォルダ操作の基本、ファイル・フォルダ名の取得と新規フォルダの作成を解説しました。

またファイル・フォルダ名の取得に関しては、ファイル名、フォルダ名別々に取得する方法もありますので、それはまた今度解説したいと思います。

次回はosモジュールではないのですが、ファイルの作成方法を解説します。

Pythonでファイル操作 〜新規作成、追記、読み取り〜
前回のおさらい前回からosモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイル・フォルダの名前を取得したり、フォルダを新規作成する方法を解説しました。...

ということで今回はこんな感じで。

コメント

タイトルとURLをコピーしました