脱!プログラミング入門

このブログではプログラミング入門後にさらに能力を伸ばすための援助ができるようにしたいです

覚えておきたいosモジュールのメソッド

 様々なプログラミング言語にはOSが行うファイルやプロセスの操作を行う処理をプログラミング言語上で扱うためのライブラリが用意されています.Pythonではそれがosモジュールに当たります.今回はosモジュールの中でもより頻繁に使うメソッドを紹介したいと思います.覚えていただくと作業効率が向上します.

対話モードで使うosモジュールのメソッド

 Pythonの特徴として代表すべきものの1つは対話モードと言っていいでしょう.ライブラリを少し使ってみたいと思ったときは対話モードを使うとすぐに試すことができます.一応ですがPythonの対話モードがどのようなものであるかを次に示したいと思います.

$ python
Python 3.7.1 (default, Dec 14 2018, 13:28:58) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

pythonがインストールされている状態で,コマンドラインpythonと打つと上記のようになります.コマンドプロンプト>>>として表示されており,その状態でpythonの命令文を打つとその処理が実行されます.

 対話モードでは,しばしばディレクトリの移動やカレントディレクトリにあるファイルを表示したいことがあります.しかし,いつも使っているUNIXlsコマンドやcdコマンドは使えません.ディレクトリ移動やファイル表示をするにはosモジュールにあるメソッド使う必要があります.カレントディレクトリの表示,ディレクトリ移動,ファイル表示をosモジュールを使って実行した例を次に示します.

>>> import os
>>> os.getcwd()
/home/xxx/works/python
>>> os.chdir(‘projects’)
>>> os.getcwd()
/home/xxx/works/python/projects
>>> os.listdir()
[‘hello.py’, ‘test.py’]

unixコマンドとpythonのosモジュールの対応表を次にまとめます.

UNIXコマンド osモジュール
カレントディレクト
の表示
pwd os.getcwd()
ディレクトリ移動 cd os.chdir()
ファイル表示 ls os.listdir()

これだけでも覚えていただけるとPythonの対話モードがかなり使いやすくなると思います.

スクリプト内で使うosモジュールのメソッド

 Pythonスクリプト内でファイルやディレクトリを一斉に消去したり,ファイル名を取得したりする際にosモジュールを用いることがあります.ファイルやディレクトリのコピーや移動に関してはshutilモジュールで操作することができますが,これに関しては別の記事で書こうと思います.

 先ほど紹介したos.listdir()スクリプト内でも便利な場合があります.あるディレクトリ内のファイルをまとめて扱いたいときに利用できます.対話モードで実行例を少しお見せしました通り,os.listdir()の返り値はリスト型です.このリストの中身をfor文で順番に取り出すことでディレクトリにあるファイルをまとめて扱うことができます.例を次に示します.

import os

if __name__ == ‘__main__’:
    files = os.listdir()
    for file in files:
        # 何らかの処理

終わりに

 今回はosモジュールのファイル操作に関するメソッドについて説明しました.osモジュールはファイル操作だけでなくOSに関わる操作を色々できます.興味がある人は調べてみてください.

 対話モードではカレントディレクトリは何か,カレントディレクトリにはどんなファイルがあるのかというようなことを調べる必要が生じることがあります.そこで先ほど説明したメソッドを使うことでそれらを調べることが可能になります.上記の3つだけでも覚えるとかなり便利になります.

 スクリプト内ではos.listdir()を使う場面について説明しました.ファイルを一斉に読み込んだりするときなどに使えます.スクリプト内でのファイル操作はshutilモジュールで可能となります.特定のファイルの移動やまとめてファイルをコピーする場面に使います.