Pythonで年月や月を取得する基本的な方法
Pythonで年月や月を取得するには、datetimeモジュールを使用します。以下のコードを実行すると、現在の年月を取得できます。
import datetime now = datetime.datetime.now() year_month = now.strftime("%Y-%m") month = now.strftime("%m") print(year_month) print(month)
実行結果は以下のようになります。
2023-12 12
strftimeメソッドには、日付を指定したフォーマットで文字列に変換する機能があります。%Yは年、%mは月、%dは日を表します。
datetimeモジュールを用いた現在の年月取得方法
datetimeモジュールを使用して、現在の年月を取得する別の方法もあります。以下のコードを実行すると、現在の年月を取得できます。
import datetime now = datetime.datetime.now() year_month = now.year * 100 + now.month print(year_month)
実行結果は以下のようになります。
202312
年月を数値で取得する場合は、この方法が便利です。
Pythonで月をリスト化する方法
Pythonで月をリスト化するには、range関数を使用します。以下のコードを実行すると、1月から12月までの月をリスト化できます。
months = list(range(1, 13)) print(months)
実行結果は以下のようになります。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
range関数は、指定された範囲の整数のリストを生成します。
リスト化した月を0埋めする方法
Pythonで0埋めされた月のリストを作成するには、zfillメソッドを使用します。以下のコードを実行すると、1月から12月までの0埋めされた月のリストを作成できます。
months = list(range(1, 13)) zero_padded_months = [str(month).zfill(2) for month in months] print(zero_padded_months)
実行結果は以下のようになります。
['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
zfillメソッドは、指定された桁数になるまで文字列の左側に0を埋めます。
実践例:特定の年の全ての月を0埋めリストで取得する方法
特定の年の全ての月を0埋めリストで取得するには、以下のコードを実行します。
import datetime year = 2023 months = list(range(1, 13)) zero_padded_months = [str(month).zfill(2) for month in months] year_month_list = [str(year) + '-' + zero_padded_month for zero_padded_month in zero_padded_months] print(year_month_list)
実行結果は以下のようになります。
['2023-01', '2023-02', '2023-03', '2023-04', '2023-05', '2023-06', '2023-07', '2023-08', '2023-09', '2023-10', '2023-11', '2023-12']
年と月を結合するために、文字列の結合演算子+を使用しています。
よくあるエラーと対処法
Pythonで年月や月を取得する際によくあるエラーとして、以下のようなものがあります。
- TypeError: ‘int’ object is not callable
- AttributeError: ‘module’ object has no attribute ‘strptime’
- ValueError: invalid literal for int() with base 10: ‘2021-08’
これらのエラーは、正しいデータ型や書式を使用していない場合に発生することがあります。エラーを回避するためには、データ型や書式を確認し、必要に応じて変換する必要があります。
まとめ
Pythonで年月や月を0埋めリストに取得する方法について、基本的な方法から実践例まで解説しました。datetimeモジュールを使用して、現在の年月を取得したり、月をリスト化したりすることができます。また、zfillメソッドを使用して、0埋めされた月のリストを作成することができます。