雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

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を実行したときには特にエスケープシーケンスを考慮しないでもうまく実行できていたので、少しはまりました。
どなたかの参考になれば幸いです。