Python:如何保存简单的设置/配置文件?

2024-01-03

我不在乎是不是JSON, pickle, YAML, 管他呢。

我见过的所有其他实现都不向前兼容,所以如果我有一个配置文件,在代码中添加一个新密钥,然后加载该配置文件,它就会崩溃。

有什么简单的方法可以做到这一点吗?


python中的配置文件

根据所需的文件格式,有多种方法可以执行此操作。

ConfigParser [.ini 格式]

我会使用标准配置解析器 http://docs.python.org/2/library/configparser.html除非有令人信服的理由使用不同的格式。

像这样写一个文件:

# python 2.x
# from ConfigParser import SafeConfigParser
# config = SafeConfigParser()

# python 3.x
from configparser import ConfigParser
config = ConfigParser()

config.read('config.ini')
config.add_section('main')
config.set('main', 'key1', 'value1')
config.set('main', 'key2', 'value2')
config.set('main', 'key3', 'value3')

with open('config.ini', 'w') as f:
    config.write(f)

文件格式非常简单,部分用方括号标记:

[main]
key1 = value1
key2 = value2
key3 = value3

可以像这样从文件中提取值:

# python 2.x
# from ConfigParser import SafeConfigParser
# config = SafeConfigParser()

# python 3.x
from configparser import ConfigParser
config = ConfigParser()

config.read('config.ini')

print(config.get('main', 'key1')) # -> "value1"
print(config.get('main', 'key2')) # -> "value2"
print(config.get('main', 'key3')) # -> "value3"

# getfloat() raises an exception if the value is not a float
a_float = config.getfloat('main', 'a_float')

# getint() and getboolean() also do this for their respective types
an_int = config.getint('main', 'an_int')

JSON [.json 格式]

JSON 数据可能非常复杂,但具有高度可移植的优点。

将数据写入文件:

import json

config = {"key1": "value1", "key2": "value2"}

with open('config1.json', 'w') as f:
    json.dump(config, f)

从文件中读取数据:

import json

with open('config.json', 'r') as f:
    config = json.load(f)

#edit the data
config['key3'] = 'value3'

#write it back to the file
with open('config.json', 'w') as f:
    json.dump(config, f)

YAML

提供了一个基本的 YAML 示例在这个答案中 https://stackoverflow.com/a/1774043/1083707。更多详细信息可以参见pyYAML 网站 http://pyyaml.org/wiki/PyYAMLDocumentation.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何保存简单的设置/配置文件? 的相关文章

  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • 带有用户信息的 Django Logger

    我只是好奇 是否可以放User内的信息formatters信息输入LOGGING配置在setting py 现在我只是将该信息放入要记录的消息中 但也许有一种方法可以将其设置为formatters争论 这是我的LOGGING现在的配置 LO
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是

随机推荐

  • Web 应用程序中的时区敏感日期和时间显示?

    我正在寻找有关在用户当前时区以外的时区的 Web 应用程序中显示时间的建议 我们将日期 时间以 UTC GMT 格式存储在数据库中 因此将时间格式化为 UTC GMT 或用户当前时区不是问题 然而 在其他情况下 我们需要从任意时区的角度显示
  • 辅助功能:Talkback、WebView 和用户区域设置

    我开发了一个包含 Webview 的应用程序 我想让我的应用程序完全可访问 因此对于 webview 元素 我希望 TalkBack 以完全可访问的方式读取 html 元素 例如 标题 横幅 EditText 我已经看到WebView中的T
  • 无法添加指定 URI 的部分,因为它已在包中

    我正在 teamcity 中使用 NUGET Pack 来构建包 但它正在创建以下错误 我正在使用 nuget teamcity 版本 2 2 1 Step 2 2 Build Package NuGet Pack 14s 12 10 40
  • 使用 Python 从一个文本文件复制到另一个文本文件

    我想将某些文本行从一个文本文件复制到另一个文本文件 在我当前的脚本中 当我搜索字符串时 它会复制所有内容 如何仅复制文本的特定部分 例如 仅当其中包含 tests file myword 时才复制行 当前代码 usr bin env pyt
  • 在nHibernate的Criteria中编写子查询

    我已经在 Criteria 中阅读了有关子查询的内容 但我仍然无法正确掌握它 在这里我举一个例子 如果有人可以帮助我使用子查询来编写它 那就太好了 假设我们有桌子 Employee EmployeeId int Name string Po
  • 带有 GridBagLayout 的嵌套 JPanel

    我有一个JFrame with GridBagLayout Weightx 和 Weighty 值被分配不同的非零值并且 GridBagConstraints fill GridBagConstraints BOTH 我在其中一个单元格中嵌
  • 在 Java 中存储转换后的 BufferedImage

    在Java中 我想使用代码来转换和保存它们 而不是使用photoshop来转换我的图像 我在程序中使用的 我创建了一个 AffineTransform 对象 at 并调用rotate 方法 我有一个名为 图像 的 BufferedImage
  • 发送列表/地图作为 POST 参数 jersey

    我想将 HashMap 对象作为 POST 变量发送到 ReST 资源 我用的是Form发送对象的类 客户端代码 public static void main String args ClientConfig config new Def
  • 从主屏幕删除图标后,如何恢复渐进式网络应用程序的“添加到主屏幕”横幅?

    原因 我做了一个Progressive web app 在浏览器中打开 一切都很好 浏览器让我将其添加到主屏幕 现在 我想在演示文稿中演示这一点 因此 从主屏幕上删除了该图标 但在过去一整天里 我一直在 chrome 中浏览该网站 但横幅再
  • 如何使用 matplotlib 以指数方式缩放 Y 轴

    我正在尝试创建一个带有指数 Y 轴的 matplotlib 图 就像我在下面模拟的假图一样 对于我的数据 我希望在接近最大 Y 值时将这些值展开 我想在 Y 接近零时压缩这些值 所有正常的 对数 示例都会执行相反的操作 当值远离零时 它们会
  • 尽管设置了适当的标志,仍无法使用 pyenv 安装 32 位 Python

    我正在寻找安装 2 6 6 Python 作为32 bit with pyenv在 OS X 上 但是得到 ERROR The Python ssl extension was not compiled Missing the OpenSS
  • 错误 itms-90122 - 可执行文件大小无效

    我只是在将应用程序上传到应用程序商店时遇到一些问题 问题是armv7的60MB文件大小限制 见截图 几乎没有嵌入图像或类似的东西 应用程序文件只有 0 5MB 大 但我确信由于下次更新它会很快增加 有没有可能减少应用程序的大小 或者也许更改
  • 当只处理单个图像时是否需要 imagedestroy() ?

    我正在使用 PHP 来使用 GD 扩展处理一些图像 代码结构相当复杂 图像被分配在代码的 深处 并且有许多 IF 可以简单地退出 该脚本仅处理单个图像 一旦将其写入文件 它就会退出 我想我可以使用 try catch 代替 但我有兴趣知道是
  • 在 python 中多重处理 shell 脚本

    我的要求是与多处理并行运行 shell 函数或脚本 目前 我使用以下不使用多重处理的脚本来完成它 此外 当我并行启动 10 个作业时 其中一项作业可能会提前完成 并且必须等待其他 9 个作业完成 我想借助 python 中的多处理来消除这个
  • filter_var 和filter_input 之间的区别

    为什么这不起作用 if data email filter var INPUT POST email FILTER SANITIZE EMAIL errors email Invalid Email 这是有效的 if data email
  • 与 Ace Editor 分开的托管模式文件

    我想将 ACE Editor 与桌面应用程序捆绑在一起 并将其呈现在 WebView 中 艾斯正在奔跑file 协议 有没有办法将模式文件与ace js 例如ace js将位于应用程序包内 Application MyApp app 但模式
  • Visual Studio:在调试时编辑 XAML 文件

    我有一个在调试模式下运行的 WPF 应用程序 我想在应用程序仍在运行时更改 XAML I m not要求编辑并继续 我不介意我必须重新启动应用程序才能使更改生效 我只想能够更改 XAML 文件当应用程序仍在运行时 而不必 1 记住我想要在
  • 电话间隙。无法启动地理定位服务

    PhoneGap 版本 2 0 0 Android API 级别 16 4 0 3 版本 提示错误的代码示例 navigator geolocation getCurrentPosition onSuccess onError enable
  • VBA删除带有数字的整行(For循环的变量)

    我正在努力解决一个非常基本的问题 Public Sub Optionfilter Dim c As Range Dim StrikeD As Date Dim RefD As Date Dim StrikeP As Integer Dim
  • Python:如何保存简单的设置/配置文件?

    我不在乎是不是JSON pickle YAML 管他呢 我见过的所有其他实现都不向前兼容 所以如果我有一个配置文件 在代码中添加一个新密钥 然后加载该配置文件 它就会崩溃 有什么简单的方法可以做到这一点吗 python中的配置文件 根据所需