[Raspberry Pi] python-fmrest で FileMaker Data API を使う3

python-fmrest で FileMaker Data API を使う方法について書いた。

環境:
・Raspberry Pi 3 Model B(Buster Desktop)
・VMware vSphere Hypervisor 7.0U3g(英語環境)、VMware Photon OS 5.0 の Docker で FileMaker Server 19.6.3.302

コマンドライン引数を使用して python-fmrest を実行する場合、コマンドライン引数の数が足りない場合にどうすればいいか。python-fmrest だけでなく Python スクリプト一般に言えることだが、スクリプト内で条件分岐して解決すればいい。

例えばレコードを新規作成し、field1 に引数1、field2 に引数2、field3 に引数3を入力する python-fmrest のスクリプトを書くとする。

そのとき2つしかコマンドライン引数が与えられなかった場合、3つ目のコマンドライン引数を空白として処理するには以下のようなスクリプトを書けばいい。

import fmrest
import sys

args = sys.argv

fms = fmrest.Server(
  '{https://{FMS の IP アドレス}',
  user='{データベースのユーザー名}',
  password='{データベースのパスワード}',
  database='{データベース名}',
  layout='{レイアウト名}',
  verify_ssl=False,
  api_version='v1'
)

fms.login()

if len(args) < 4:
  hoge = fms.create_record({'field1': args[1], 'field2': args[2], 'field3': ''})
  fms.logout()
  sys.exit()
else:
  hoge = fms.create_record({'field1': args[1], 'field2': args[2], 'field3': args[3]})

fms.logout()

参考:
Pythonでプログラムを終了させる:sys.exit() | UX MILK
https://uxmilk.jp/12929

python - 引数が無いかどうか調べる処理をしたい - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/44987/%E5%BC%95%E6%95%B0%E3%81%8C%E7%84%A1%E3%81%84%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B%E5%87%A6%E7%90%86%E3%82%92%E3%81%97%E3%81%9F%E3%81%84

IndexError: list index out of range
https://teratail.com/questions/117620

【Python基礎】sysモジュールを使ってコマンドライン引数を取得する方法 | 3PySci
https://3pysci.com/python-args-1/#index_id2


この記事が気に入ったらサポートをしてみませんか?