要访问环境变量,并在平台允许的情况下修改它们(Windows和所有流行的unix都这样做),只需使用os.environ。在
但是,这不会有任何好处,除非您试图为使用subprocess或类似工具启动的Python子进程设置环境变量。Python在启动时读取环境变量,使用它们来获取配置信息,以后不再检查它们。在
这些环境变量(和命令行标志)的作用是在shell、启动程序脚本等中设置它们,以便在Python启动时可以使用它们,而不是从Python内部设置它们。在
通常情况下,如果你需要这个设置,你就需要全局性的设置,所以你需要在你的shell配置文件脚本中设置它(对于Linux),你的操作系统的环境变量的GUI(对于Windows),或者两者兼而有之(对于macOS,尽管在Mac上,所有的东西都已经被保证设置为UTF-8,我相信即使你设法打破了这一点,Python将忽略它)。在
您不会在现有的环境变量列表中找到这一点(除非您在一个不寻常的Linux发行版上,它对语言环境设置做了一些奇怪的事情,但需要默认的Python来忽略它们),但这并不重要;您可以添加任何所需的环境变量。在
但是如果你想动态地改变事情,虽然你不能通过设置环境变量来改变,你也不需要。在
正如the docs所解释的,它控制的是设置文件系统编码、首选编码和stdio文件编码。在
前两个,您可以在sys和locale中调用相同的函数来随时设置它们。在
如果您还想更改stdio文件,那就有点棘手了。我相信让这些文件在运行中更容易更改编码的建议被拒绝或推迟,所以您唯一能做的就是用新的文件对象替换它们,这些对象包装在