【初学者向け】Python超入門⑭〜import文〜

Python超入門
こんにちは、データ分析屋のやじろべえ(@yajirobe_papa)です。
ついに、Python超入門講座の最終回となる第十四回となりました!
ここまでの内容を理解出来ていれば、Pythonの基本はかなり身に付いたと思います。
さて、前回はPythonにおけるテキストファイルの書き込みについて解説しました。
最終回となる今回はimport文を使って色々なライブラリを使ってみましょう。
それでは早速やっていきましょう!

import文とは

Pythonには様々な処理をする機能(これを”モジュール”や”ライブラリ”と言います。)が開発されていますが、それらの機能はimport文で使えるようになります。
第四回講座の中で予約語の確認で使ったkeywordというモジュールもimportすることで使えましたよね。
忘れてしまった人は第四回講座(変数編)を復習してみてくださいね!
importの使い方は以下のようになります。
import モジュール名
また、import文はコード内のどこに記述しても良いのですが、一般的には一番上に書くのが慣習となっています。
早速Pythonの便利な標準モジュールをいくつか見てみましょう。

osモジュール

ファイル操作やコマンドラインベースの操作を行うときによく使われる機能を提供しているモジュールのことです。
OSモジュールを使うためには、以下のようにインポートすることで使えるようになります。
import os
では、早速OSモジュールを使ってみます。

ファイルが存在するかどうかを調べる

まずは、指定したファイルが存在するかどうかを調べる事が出来る関数を使ってみます。
指定したファイルが存在するかどうかは、os.path.isfile(ファイルのパス)で調べる事が出来ます。
次の例では前回の講座で使った’name_data.txt’が存在するかどうかを調べていて、ファイルが存在するのでTrueという結果が返ってきています。もしファイルが存在しない場合は結果はFalseとなります。
In [1]: path = './name_data.txt'
        print(os.path.isfile(path))
Out[1]: True

フォルダが存在するかどうかを調べる

指定したフォルダが存在するかどうかは、os.path.isdir(フォルダのパス)で調べる事が出来ます。
こちらも存在する場合はTrueという結果が返理、ファイルが存在しない場合はFalseとなります。
In [2]: path = './temp'
        print(os.path.isdir(path))
Out[2]: False

フォルダを生成する

フォルダを生成するには、os.mkdir(フォルダのパス)を使うと便利です。
以下を実行すると、’prac’というフォルダ名が生成されます。
In [3]: path = './prac'
        os.mkdir(path)
上に挙げた以外にもファイル操作等に関してたくさん便利な機能があるので、気になる方は公式ドキュメントを参考にしてみてください。

shutilモジュール

ファイル操作やコマンドラインベースの操作を行うときによく使われる機能を提供しているモジュールです。
osモジュールと似ていますが、osモジュールには無い機能があり、こちらも使えるようになると便利です。
shutilモジュールを使うためには、以下のようにインポートすることで使えるようになります。
import shutil
では、早速shutilモジュールを使ってみます。

ファイルをコピーする

ファイルをコピーするには、shutil.copy(‘コピー元ファイルパス’, ‘コピー先ファイルパス’)で行えます。
以下を実行すると、ファイル’name_data.txt’がフォルダ’prac’にコピーされます。
In [4]: path_1 = './name_data.txt'
        path_2 = './prac'
        shutil.copy(path_1, path_2)
Out[4]: './prac/name_data.txt'

ファイルごとコピーする

フォルダごとコピーするには、shutil.copytree(‘コピー元フォルダパス’, ‘コピー先フォルダパス’)で行えます。
以下を実行すると、フォルダ’prac’が中身ごとそのまま’prac_cp’というフォルダとしてコピーされます。
In [5]: path_1 = './prac'
        path_2 = './prac_cp'
        shutil.copytree(path_1, path_2)
Out[5]: './prac_cp'
shutilモジュールについても他の機能について気になる方は公式ドキュメントを参考にしてみてください。

globモジュール

条件を満たすファイル名やフォルダ名のパスの一覧を取得する事が出来ます。
globモジュールを使うためには、以下のようにインポートすることで使えるようになります。
import glob
では、早速globモジュールを使ってみます。

フォルダからファイル一覧を取得する

指定したフォルダ内にあるファイル一覧を取得する場合は、glob.glob(ファイル条件)で行えます。
例えば、’data’というフォルダ内に、’name_data.txt’, ‘rename_data.txt’, ‘test.txt’, ‘temp.csv’という四つのファイルがあったとします。
以下を実行すると四つのファイル名がリスト型がとして返されます。また、カッコ内のパスの最後に付けているアスタリスク’*’ですが、これはワイルドカードと呼ばれる特殊文字です。
ここでのアスタリスクが意味するものは、”全ての文字または数字”というように理解してもらえばひとまずはOKです。
In [6]: glob.glob('./data/*')
Out [6]:
['./data/name_data.txt', './data/rename_data.txt', './data/test.txt', 'temp.csv']
次に、ファイル形式に条件を絞って一覧取得してみます。
以下を実行すると、テキストファイルのみが返されます。
先ほどとの違いは、アスタリスクの後に’.txt’を付けていますね。これで拡張子がテキストファイルのみという条件になり、拡張子以外の文字については全てを対象としているということになります。
In [7]: glob.glob('./data/*.txt')
Out [7]:
['./data/name_data.txt', './data/rename_data.txt', './data/test.txt']
globモジュールについても他の機能について気になる方は公式ドキュメントを参考にしてみてください。

mathモジュール

数学計算用の関数などを集めたモジュールで、例えば円周率や三角関数、指数対数、平方根などが使えます。
mathモジュールを使うためには、以下のようにインポートすることで使えるようになります。
import math
では、早速mathモジュールを使ってみます。
円周率
以下を実行すると、円周率が返されます。

In [8]: math.pi
Out [8]: 3.141592653589793

 

切り捨て
以下を実行すると、値が切り捨てられて整数を返します。

In [9]: math.floor(3.14)
Out [9]: 3

 

切り上げ
以下を実行すると、値が切り上げられて整数を返します。

In [10]: math.ceil(3.14)
Out [10]: 4

 

三角関数(sin)
以下を実行するとカッコ内のsinの値を返します。また、カッコ内はラジアン表記です。

In [11]: math.sin(math.pi/2)
Out [11]: 1

 

三角関数(cos)
以下を実行するとカッコ内のcosの値を返します。また、カッコ内はラジアン表記です。

In [12]: math.cos(math.pi/2)
Out [12]: 6.123233995736766e-17

 

三角関数(tan)
以下を実行するとカッコ内のtanの値を返します。また、カッコ内はラジアン表記です。

In [13]: math.tan(math.pi/2)
Out [13]: 1.633123935319537e+16

 

平方根
以下を実行すると平方根の値を返します。

In [14]: math.sqrt(9)
Out [14]: 3

 

べき乗
以下を実行するとべき乗を返します。

In [15]: math.exp(3)
Out [15]: 20.085536923187668

 

まとめ

最終回となる今回はPythonの様々な標準モジュールをimportして使ってみました。
これから分析や開発を進めていくと、標準モジュールに限らず様々なモジュールを使うことになると思いますので、是非使い方を覚えておきましょう!
さて、全14回にわたるPython超入門講座もこの記事で最終回となります。
この入門講座でPythonの基本的な使い方を網羅的に解説してきました。
これをきっかけにプログラミング、Pythonに興味を持っていただける人が一人でも増えてもらえると講座を作ってきた側としては嬉しい限りです。
それでは、また別の講座でお会いしましょう!
タイトルとURLをコピーしました