ご教示いただきたいこと
下記if文を書いたのですが、より効率的に記載する方法があればご教示いただきたい。
(同じような処理、エラーメッセージを何度も書いているため、自分自身あまり効率的ではないと感じています。ただどのような書き方が効率的かのノウハウがなく、質問させていただきました。)
コード
def CheckTargetExists(file_path, dst_dir, dst_bucket): # 転送対象ファイルの存在確認 if os.path.isfile(file_path): logInfo('転送対象ファイル: {0}が存在します。処理を継続します。'.format(file_path)) # 一時退避フォルダの存在確認 if os.path.isdir(dst_dir): logInfo('一時退避先フォルダ: {0}が存在します。処理を継続します。'.format(dst_dir)) # S3バケットの存在確認 for i in s3.list_buckets()['Buckets']: if i['Name'] == dst_bucket: logInfo('転送先バケット: {0}が存在します。処理を継続します。'.format(dst_bucket)) break else: pass else: logErr('転送先バケット: {0}が存在しません。処理を終了します。'.format(dst_bucket)) sys.exit(1) else: logErr('一時退避先フォルダ: {0}が存在しません。処理を終了します。'.format(dst_dir)) sys.exit(1) else: logErr('転送対象ファイル: {0}が存在しません。処理を終了します。'.format(file_path)) sys.exit(1) logInfo('全てのファイル、フォルダ、バケットが存在するため、処理を継続します。')
コードの補足
- Windows Server内の特定ファイルを一時退避フォルダにコピーし、コピーしたファイルをS3に転送するスクリプトを書いています。その中で、特定ファイル、一時退避フォルダ、転送先S3バケットの存在確認をする関数が上記コードになります。
- file_path: フルパスが入ります。
- dst_dir: フルパスが入ります。
- dst_bucket: バケット名が入ります。
- logInfo(): Infoレベルでログを出力します。
- logErr(): Errorレベルでログを出力します。
回答2件
あなたの回答
tips
プレビュー