Python tips
提供: Eospedia
目次
argparse
https://docs.python.org/release/3.8.2/library/argparse.html
インスタンス化
モジュールdocstring書いといてそれをdescriptionにすると良さげ
parser = argparse.ArgumentParser(description=__doc__)
オプション名の書き方と格納先変数名
https://docs.python.org/release/3.8.2/library/argparse.html#dest
引数個数の指定
https://docs.python.org/release/3.8.2/library/argparse.html#nargs
ヘルプメッセージにデフォルト値を表示する
https://docs.python.org/release/3.8.2/library/argparse.html#argparse.ArgumentDefaultsHelpFormatter
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
logging
https://docs.python.org/release/3.8.2/library/logging.html
ロガー生成スニペット
logging_fmt = logging.Formatter( '\n[%(asctime)s - %(name)s - %(levelname)s] %(message)s') logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) stream_handler = logging.StreamHandler() stream_handler.setFormatter(logging_fmt) logger.addHandler(stream_handler) def set_logger(log_file, is_debug): if log_file is not None: log_file_dir = os.path.dirname(log_file) if log_file_dir: if not os.path.exists(log_file_dir): logger.debug('Creating log file directory...') os.makedirs(log_file_dir) elif not os.path.isdir(log_file_dir): logger.error('{} is not a directory.'.format(log_file_dir)) sys.exit(1) file_handler = logging.FileHandler(log_file, mode='w') file_handler.setFormatter(logging_fmt) logger.addHandler(file_handler) if not is_debug: logger.setLevel(logging.INFO)