【Python】lambdaでWindowsのPathを指定する場合の注意点(エスケープシーケンス)

LamdbaからRun Command を実施するためにWindowsのPathを指定したところ、うまく実行できず詰まったのでメモ。

普通にWindowsのPathを指定すると \(バックスラッシュ) がPythonのエスケープシーケンスに変換されていたのが原因でした。

[参考サイト]
エスケープシーケンスを使用する | Python入門

runtime : python 3.8

エスケープシーケンスを考慮しない場合

以下の例だと \b\t がエスケープシーケンスに該当します。

  • \b ⇒ ASCII バックスペース (BS)
  • \t ⇒ ASCII 水平タブ (TAB)
def lambda_handler(event, context):
    a = "C:\bbb\ttt"
    print(a)

実行結果

C:bb tt

エスケープシーケンスを考慮する場合

\(バックスラッシュ) を、\\ に書き換えると期待通りの動作となります。

def lambda_handler(event, context):
    b = "C:\\ccc\\ttt"
    print(b)

実行結果

C:\ccc\ttt

最後に

AWSコンソール上からRun Commandを実行したときには特にエスケープシーケンスを考慮しないでもうまく実行できていたので、少しはまりました。
どなたかの参考になれば幸いです。