【python】读取.env文件 configparser.MissingSectionHeaderError: File contains no sectio

293 阅读1分钟

通过configparser模块读取.env文件出现这个报错,找了一圈都没找到实际是哪里发生的,看网上其他文章也是有这个报错,但是没有给出实际的解决方法,再回过头来仔细看,大概看报错是在读文件的时候出的错误:

Traceback (most recent call last):
  File "D:\code\qt_demo\demo\env_demo.py", line 50, in <module>
    res = load_env_all()
  File "D:\code\qt_demo\demo\env_demo.py", line 38, in load_env_all
    config.read(".env", encoding='utf-8-sig')
  File "D:\Software_install\python39\lib\configparser.py", line 697, in read
    self._read(fp, filename)
  File "D:\Software_install\python39\lib\configparser.py", line 1085, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: '.env', line: 1
'OPENAI_API_KEY = "aaa"'

.env

 OPENAI_API_KEY = "aaa"

env_demo.py

import configparser


def load_env_all():
    # Load environment variables from .env file
    config = configparser.ConfigParser()
    # config.read(".env",encoding='utf-8')
    config.read(".env", encoding='utf-8-sig')

    # Get all items from the .env file
    items = dict(config.items("default"))
    print("items")
    # Return items as a dictionary
    return items


if __name__ == '__main__':
    # res = load_env()
    # res = load_all()
    res = load_env_all()
    print(res)

第一次用这个模块没啥经验,看到都有点脸红,看人家给的demo中env文件格式跟我的不大一样:

[test]
test = "aaa"

估计我也是这里有点异常,安装这个格式顺手改改看,没成想,还真改好,真可谓妙手回春

[db]
OPENAI_API_KEY = "aaa"

[default]
OPENAI_API_KEY = "aaa"

运行代码的结果:

{'openai_api_key': '"aaa"'}

打工人,打工魂,打工人就人上人~~~~~ 周末愉快~