ファイルをアップロードするにはファイル名が要るので、早速文字列操作をしています。
ファイル名は「test001、test002……」のように連番にしてあるので、数値は変数で扱い、文字列とつなぐ方法を採りました。
Pythonを始めて間もない私には、「%」や「.format()」という便利なものを知る由もありません。初心者らしく、全部を「+」でつなぐという力技でやってみたところ、エラーが出ました。Pythonでは文字列と数値を「+」でつなぐとエラーになるんですね。
型変換を使えば「+」でつなぐこともできますが、多少面倒なことは否めません。
調べてみたら、簡単な方法があったので、ご紹介します。
文字列と数値を簡単に連結させるには?
f-string(フォーマット済み文字列リテラル・f文字列)を使います。
f-string(f文字列)とは?
Python3.6から導入されたもので、波括弧 {} で区切られた式である置換フィールドを含めることができます。頭に「f」を付けることで、f-stringと認識されます。
詳しくは、公式リファレンスをご覧ください。
「Python Language Summit 2020」では、Pythonの文字列全てをf-string化する議論があったそうです。
f-stringを使うメリットは?
コードが読みやすくなります。複雑な文字列を作成する時ほど役に立つでしょう。
f-stringを使わない場合
No = 1
print('test' + str(No).zfill(3))
# ⇒ test001
f-stringを使う場合
No = 1
print(f'test{No:03}')
# ⇒ test001
2つを比べると、f-stringを使うとコードが短くなっていることが分かります。
ちなみに、書式の指定方法は「.format()」に準じます。
ちょっとした小技
バージョン3.8から「=」が追加されました。これは、変数名と変数の内容を表示させるもので、デバッグで役に立ちそうです。
No1 = 1
No2 = 2
print(f'{No1=},{No2=}')
# ⇒ No1=1,No2=2
まとめ
型が違うもの同士を結合するには、f-stringを使うのが簡単です。
さらに0パディングなどの加工も同時にできて便利なので、使いこなせるようになりたいです。