
起動オプションの指定
自動で何かを計算するプログラムをPythonで作ったとしましょう。
毎日動くプログラムで、数日間は過去の計算内容を残しておきたいとします。
こういう条件でプログラムを作るとなると、入力と出力のファイル名を日付などで変更しなくてはなりません。
また、Pythonで作ったプログラムを呼び出す親プログラム、改修したことで入力と出力ファイル名を変更する場合ああります。
こういう場合を想定して、Pythonで入力ファイルと出力ファイルを指定出来るようにします。
if len(sys.argv) == 2 :
#起動オプションでファイル名が指定されたので利用する
InputCsv=sys.argv[0]
OutputCsv=sys.argv[1]
サンプルコードを記載します
#ロギングを行う
import logging
def main():
#ロギングの設定
LogFormat = "%(asctime)s:%(pathname)s:%(funcName)s:%(lineno)s:%(message)s"
logging.basicConfig(filename='Python_log.log', level=logging.DEBUG,format=LogFormat)
#入出力ファイルの初期値
InputCsv='input.csv'
OutputCsv='output.csv'
#起動オプションの数を表示
print('Number of boot options:%i' % len(sys.argv))
#起動オプションの解析
if len(sys.argv) == 3 :
#起動オプションでファイル名が指定されたので利用する
InputCsv=sys.argv[1]
OutputCsv=sys.argv[2]
else:
#起動オプションが指定されていないので 、使い方を表示する
print('Using boot options: InputFileName OutputFileName')
#入出力に使用するファイルを表示する
print('Input File=%s' % InputCsv)
print('Output File=%s' % OutputCsv)
return
#最後にmainを呼び出す
main()