Cómo acceder a las variables desde el archivo pasado a través de la línea de comando

Actualmente tengo config.py en mi paquete y puedo acceder a las variables definidas en config.py desde otros archivos py como

 import config var1 = config.var1 

En primer lugar, ¿puedo pasar el archivo como argumento? test.py config.py

Pero, ¿hay alguna forma de pasar el archivo de configuración a través de la línea de comandos como argumento y acceder a las variables definidas en él? Veo que hay un módulo sys para pasar los argumentos a través de la línea de comandos. ¿Pero puedo obtener variables definidas en el archivo pasado?

Ahora puedo acceder a las variables en el archivo pasado como __import__(sys.argv[1]) y se llama python test.py config . ¿Pero puedo llamar al archivo config.py dando pythonpath? e / g / python test.py ~/Desktop/config o PYTHONPATH='~/Desktop/' python test.py config ? Porque si hago esto no consigo no module error .

Lo que hace con la import config es hacer que todos los nombres de config.py estén disponibles en su script.

Puede hacer esto usando __import__(sys.args[1]) como se indica en las respuestas a esta pregunta .

Pero para la configuración real del progtwig, ¡asegúrate de echar un vistazo al módulo argparse !

 p = argparse.ArgumentParser(description="...") p.add_argument("--var1", type=int) p.add_argument("--var2", type=str) config = p.parse_args() # will look at sys.args by default if config.var1 > 10: ....