どうも!リョクちゃです。
今回は、Pythonファイルへの外部モジュールのインポートから使い方を紹介します。
主に使うモジュールは以下の通りです。
- 時刻モジュール
- カレンダーモジュール
ちなみに前回はこちら
目次
モジュールのインポート
外部のモジュールをインポートしたいときは以下の方法で行えます。
モジュールで提供される変数やメソッド(関数)を指定する場合
複数をインポートする場合
インポートするモジュール名を別名で使用する場合
fromを使用した場合のインポート
クラスを作るたびにモジュールを呼び出すのが面倒な場合に使用されますが、
クラスはまだ触れていないので、現時点では頭の片隅に残しておく程度で問題ありません。
時刻モジュールを使ってみる
Pythonにはインストール時に標準で付属されている時刻モジュールがあります。
これを使って、現在日時を取得してみます。
時刻を扱うモジュールには、
- time
- datetime
などがあります。
これらをインポートしてみると下のようになります。
1 2 3 4 5 6 7 8 |
import time import datetime as dt today = dt.datetime.fromtimestamp(time.time()) print(today) # 出力 # 2020-09-18 19:08:52.005090 |
これを実行すると、現在日時が取得され、出力がされるかと思います。
ここでは、まず準備としてtimeモジュールと、
datetimeモジュールをそれぞれインポートしています。
これらモジュールを使って、
datetimeモジュールでサポートされている、fromtimestampメソッドを呼び出し、
引数には、timeモジュールのtimeメソッドを呼び出しています。
fromtimestamp(time.time())と書くことで、現在のローカルな日時を取得しています。
同様に、
1 2 3 4 5 6 7 |
import datetime as dt today = dt.datetime.now() print(today) # 出力 # 2020-09-18 19:08:52.005090 |
このように書いても出力結果は前のコードと同じになります。
ここで、出力された日時形式をより見やすくしてみましょう。
下のように書くことで、出力形式を見やすく変換できます。
1 2 3 4 5 6 7 8 9 |
import datetime as dt today = dt.datetime.now() print(today) print(today.strftime("%Y/%m/%d %H:%M:%S")) # 出力 # 2020-09-18 19:08:52.005090 # 2020/09/18 19:08:52 |
strftimeメソッドを使うことで、()内の書式に合わせた形になるように変換しています。
文字 | 意味 | 例 |
---|---|---|
%Y | 西暦(4ケタ)の10進表記を表します。 | 2020 |
%m | 0埋めした10進で表記した月 | 09 |
%d | 0埋めした10進で表記した日 | 18 |
%A | ロケールの曜日名 | Friday |
%H | 0埋めした10進で表記した時(24時間表記) | 08 |
%M | 0埋めした10進で表記した分 | 30 |
%S | 0埋めした10進で表記した秒 | 00 |
%f | 10進数で表記したマイクロ秒(左側から0埋めされます)。 | 000000 |
他にもありますので、こちらをご参照ください。
カレンダーモジュールを使ってみる
カレンダーモジュールは、”calendar”というモジュールを使用します。
実際にモジュールを使って、指定の日付を取得してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
import calendar as cl print(cl.month(2020, 9)) # 出力 # September 2020 # Mo Tu We Th Fr Sa Su # 1 2 3 4 5 6 # 7 8 9 10 11 12 13 # 14 15 16 17 18 19 20 # 21 22 23 24 25 26 27 # 28 29 30 |
month(年、月)と記述することでカレンダーを作成してくれるモジュールになっています。
週初めを日曜日にした場合のカレンダー
下のようにすることで週初めを日曜日にできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from calendar import TextCalendar tc = TextCalendar(firstweekday=6) print(tc.formatmonth(2020, 9)) # 出力 # September 2020 # Su Mo Tu We Th Fr Sa # 1 2 3 4 5 # 6 7 8 9 10 11 12 # 13 14 15 16 17 18 19 # 20 21 22 23 24 25 26 # 27 28 29 30 |
順を追って説明します。
① from calendar import TextCalendarは、
calendarモジュールのTextCalendarクラスをインポートしています。
② TextCalendar()で週初めを設定しています。
ここでキーワード引数のfirstweekdayに6(日曜日)を渡しています。
ちなみに0が月曜日で6が日曜日です。
③ formatmonth(年、月)で対象の年月のカレンダーを作成しています。
※ formatmonth()はTextCalendarクラスのメソッド(関数)になります。
ここでは、2020年、9月を引数にそれぞれ渡しています。
まとめ
外部モジュールを使う場合は、
とそれぞれ書くことで使えるようになります。
<時刻モジュール>
time
datetime
<カレンダーモジュール>
calendar
calendar.TextCalendar
を今回使用しました。
他にもいろいろあるので必要に応じて調べてみてください。
・こちらの書籍を参考にPythonの理解を深めました。