当前位置: 首页 > 面试题库 >

从文本文件检索变量值的最佳方法?

皇甫卓君
2023-03-14
问题内容

关于这个问题,我有一个类似的问题),但不是相同的问题。

在途中,我将有一些文本文件,其结构如下:

var_a: 'home'
var_b: 'car'
var_c: 15.5

我需要python读取文件,然后创建一个名为var_a的变量,其值为’home’,依此类推。

例:

#python stuff over here
getVarFromFile(filename) #this is the function that im looking for
print var_b
#output: car, as string
print var_c
#output 15.5, as number.

我的意思是,甚至可以保留var类型吗?

请注意,我对文本文件结构拥有完全的自由,如果我建议的格式不是最好的,我可以使用自己喜欢的格式。

编辑 :ConfigParser可以是一个解决方案,但我不太喜欢它,因为在我的脚本中,我将不得不使用以下方法引用文件中的变量

config.get("set", "var_name")

但是我会喜欢直接引用变量,就像我在python脚本中声明的那样…

有没有办法将文件导入为python字典?

哦,最后一件事,请记住,我不知道文本文件中到底有多少个变量。

编辑2 :我对stephan的JSON解决方案非常感兴趣,因为通过这种方式,文本文件可以简单地用其他语言(例如PHP,然后通过AJAX
JavaScript)读取,但是在执行该解决方案时我却失败了:

#for the example, i dont load the file but create a var with the supposed file content
file_content = "'var_a': 4, 'var_b': 'a string'"
mydict = dict(file_content)
#Error: ValueError: dictionary update sequence element #0 has length 1; 2 is required
file_content_2 = "{'var_a': 4, 'var_b': 'a string'}"
mydict_2 = dict(json.dump(file_content_2, True))
#Error:
#Traceback (most recent call last):
#File "<pyshell#5>", line 1, in <module>
#mydict_2 = dict(json.dump(file_content_2, True))
#File "C:\Python26\lib\json\__init__.py", line 181, in dump
#fp.write(chunk)
#AttributeError: 'bool' object has no attribute 'write'

JSON格式有哪些问题?而且,如何读取文本文件中的JSON数组,并在python dict中对其进行转换?

PS:我不喜欢使用.py文件的解决方案;我更喜欢.txt,.inc 、.。而不限于一种语言


问题答案:

将带有JSON或PyYAML的文件加载到字典中the_dict(有关此步骤,请参阅doc的JSON或PyYAML,两者都可以存储数据类型),并将该字典添加到您的globals字典中,例如使用globals().update(the_dict)

如果要在本地字典中(例如在函数内部)使用它,则可以这样进行:

for (n, v) in the_dict.items():
    exec('%s=%s' % (n, repr(v)))

只要可以安全使用exec。如果没有,您可以直接使用字典。



 类似资料:
  • 问题内容: 如果我传递的字符串包含这样的逗号分隔键/值对 等 似乎有比解析然后迭代更好的方法。 根据Java中的键名从该字符串检索值的最佳方法是什么? 问题答案: 您可以创建自己的CSV解析器,虽然它不是很复杂,但是假设您使用的是标准CSV格式,那么在某些特殊情况下还是很实用的。 但是为什么要重新发明轮子… 您可以尝试查找CSV解析器,例如 打开CSV 超级CSV Apache Commons 还

  • 问题内容: 将包含JSON的文件加载到JSONObject的最简单方法是什么。 目前,我正在使用json-lib。 这是我所拥有的,但是会引发异常: 输出为: 问题答案: 试试这个: 这是您的sample-json.txt,应为json格式

  • A Freudian slip is when you say one thing, but mean your mother. — Anon 我们每个人都会犯错误,这就是为什么通常铅笔上会配有橡皮擦的原因。 每当 Puppet 客户端在改变一个文件时,就会将改变前的版本做个备份。 如果在 Puppet 客户端上对一个已经存在的文件做修改,不管多小的改变, 我们都可以看到这一过程: # puppe

  • 问题内容: 我希望能够在textarea(HTML)中编写多行文本,并在python中检索此文本以使用Flask进行处理。另外,我希望能够以表格形式编写多行文本。我对使用JS毫无头绪,因此对我没有帮助。我该怎么做呢? 问题答案: 渲染具有表单和文本区域的模板。用于将表单指向将处理数据的视图。从访问数据。

  • 我的PHP文件没有将值从网站传递到我的电子邮件。 index.html中的表单代码块: CSS: PHP文件: 邮件中的输出: “来自- 姓名: 电子邮件: 联系人: 消息:' [未获得在我的网站'center2enter.com'上提交的变量的值] 我试过: > $body=“发件人:($_post['name'])\n电子邮件:($_post['email'])\n联系人:($_post['c

  • 参考这个问题:表情符号在上传到大查询时崩溃 我正在寻找最好和干净的方法来将emoji从这个类型编码为这个(Unicode)-.因为目前,我除了创建python方法(该方法将通过文本文件并替换emojis编码)之外,没有任何想法。 这是可以转换的字符串: 在python 3中将表情符号转换为Unicode,反之亦然 作为一种假设,可能需要逐行传递文本并进行转换?? 潜在想法: