Первое, что я хотел бы сделать, это улучшить читаемость происходящего, добавив некоторые функции, так как сейчас он представляет собой один большой скрипт с слишком большим количеством уровней отступа и перенаправления, что затрудняет чтение.
Для начала, теперь, когда у вас есть приложение командной строки, вы должны сначала убедиться, что именно так оно и выполняется. Вы также должны сделать выбор файловой системы и все остальное, что нужно выбрать во время выполнения, переключателем командной строки. Если пользователь вводит что-то неправильное, распечатайте использование и выйдите. Может быть, что-то вроде этого:
if __name__ == '__main__':
filesystem, other_thing = parse_args(sys.argv)
config = read_config()
if filesystem in valid_filesystems and valid_thing(other_thing):
start_client(config, filesystem)
start_server(whatever)
else:
print_usage()
sys.exit(0)
, а затем добавьте поток управления верхнего уровня на сервер start_client / start. Вы также можете создать класс GenericClient и класс GenericServer, которые вы наследуете и изменяете в зависимости от выбранной файловой системы.
В общем, я бы немного прочитал об объектной ориентации в python. Я нашел одно руководство здесь , но могут быть и лучшие, которые другие могут предложить.