Вот нормальный интерфейс командной строки навесил:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re, argparse
# Parse command line arguments
parser = argparse.ArgumentParser(description='Joins original and update configuration files.')
parser.add_argument('f0', metavar='orig_file', help='Path to original configuration file')
parser.add_argument('f1', metavar='update_file', help='Path to file with new and updated configuration values')
arg = parser.parse_args()
with open(arg.f0, 'tr') as f:
org = dict([(re.findall(r'(.*)=', l)[0], l) for l in f])
with open(arg.f1, 'tr') as f:
for l in f:
org[re.findall(r'(.*)=', l)[0]] = l
for v in org.values():
print(v, end='')
Тут и параметры потребует и usage напечатает (если параметров нужных не будет) и -h ключ вызова обработает.
$ ./confjoin -h
usage: confjoin.py [-h] orig_file update_file
Joins original and update configuration files.
optional arguments:
-h, --help show this help message and exit
Arguments:
orig_file Path to original configuration file
update_file Path to file with new and updated configuration values
... впринципе - вполне нормальная утилита получилась....