【问题标题】:file reading in python在python中读取文件
【发布时间】:2011-07-15 16:28:56
【问题描述】:

我需要读取如下文件:

config = {
    'name': 'hello',
    'see?': 'world'
}

使用名称之类的键,看看? ,但我不想硬编码脚本中的值。以及在这种情况下如何处理更深的嵌套。文件可能包含更多这样的部分,我如何在运行时识别“名称”属于哪个部分。

【问题讨论】:

  • 我不明白你的问题。您能否提供一个配置文件的示例以及您想从中获取的数据结构?
  • 用这个配置读取文件?这是什么配置?你想要打开文件,没什么大不了的
  • 如果某个特定答案解决了您的问题,请使用答案左侧的勾号接受它。

标签: python file config


【解决方案1】:

如果您将结构编码为 JSON 数据,正如我认为您想要的并且您在示例中所做的那样,您只需在文件中写入和读取结构。 举个例子:

 import json 
 config = {
  'name': 'hello',
  'see?': 'world'
 }
 out = open('config.json','w')
 out.write(json.dumps(config))
 out.close() 

配置文件保存

 input = open('config.json','r')
 config = json.loads(input.read())
 input.close()
 print config

重新加载配置文件

【讨论】:

    【解决方案2】:

    该文件看起来像有效的 python。如果您可以将其重命名为 file.py 您可以使用:

    from file import config
    print config['name']
    print config['see?']
    

    否则,文件可能是 JSON。见http://docs.python.org/library/json.html

    【讨论】:

    • 我会选择 json 而不是读取为 python。更安全,并且会产生可捕获的错误,而不是因解析错误而失败。
    • @Phil H:示例是 Python。使用配置参数导入 Python 非常安全,并且报告完全可调试的错误。
    【解决方案3】:

    听起来你想要一个配置文件?格式是否已经定义或者您正在创建它?如果您只需要从文件中读取选项,则有:

    http://docs.python.org/library/configparser.html

    处理 INI 格式。如果您已经有上述格式的文件,您能判断它是否是 JSON 格式吗?如果是这样,也有一个模块。

    【讨论】:

      【解决方案4】:

      您的配置格式似乎是有效的 python 或 JSON,它在 python 中有一个内置的解析器。请参阅http://docs.python.org/library/json.html 了解更多信息。如果您尝试将有效的 python 文件作为配置导入,请使用 import

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-04
        • 2016-10-17
        • 2020-11-03
        • 2011-01-04
        相关资源
        最近更新 更多