Pythonで年月や月を0埋めリストに取得する方法  実践解説

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埋めされた月のリストを作成することができます。