Python。如何编辑文本数据库中的数据?

2024-10-01 00:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小数据库文本文件数据库.txt公司名称:

(peter)
    name = peter
    surname = asd
    year = 23
(tom)
    name = tom
    surname = zaq
    year = 22
    hobby = sport
(paul)
    name = paul
    surname = zxc
    hobby = music
    job = teacher

如何从例如tom获取所有数据段?我想进入变量:

^{pr2}$

然后我想更改数据:

replace("year = 22", "year = 23")

然后得到:

(tom)
    name = tom
    surname = zaq
    year = 23
    hobby = sport

现在添加(职务)和删除(姓氏)数据:

(tom)
    name = tom
    year = 23
    hobby = sport
    job = taxi driver

最后把修改过的部分改写成旧的数据库.txt文件:

(peter)
    name = peter
    surname = asd
    year = 23
(tom)
    name = tom
    year = 23
    hobby = sport
    job = taxi driver
(paul)
    name = paul
    surname = zxc
    hobby = music
    job = teacher

有什么解决办法或提示吗?谢谢!在


Tags: 数据nametxt数据库jobsurnameyearpeter
2条回答

按照@aitchnyu的建议使用PyYAML,并对原始格式进行一些修改,这使得这项工作变得很简单:

import yaml

text = """
peter:
    name: peter
    surname: asd
    year: 23
tom:
    name: tom
    surname: zaq
    year: 22
    hobby: sport
paul:
    name: paul
    surname: zxc
    hobby: music
    job: teacher
"""

persons = yaml.load(text)
persons["tom"]["year"] = persons["tom"]["year"]*4   # Tom is older now
print yaml.dump(persons, default_flow_style=False)

结果:

^{pr2}$

当然,你应该从你的文件中读“文本”(数据库.txt)写完后再写

Sebastien评论的附录:在内存中使用SQLite数据库。SQLite已经嵌入到Python中了,所以只需要设置几行代码。在


另外,除非无法更改格式,否则请考虑文本的YAML。Python可以很容易地将YAML和Python对象(由Python的dict、列表、字符串、实数等组成的对象)转换为YAML和Python对象。在

http://pyyaml.org/wiki/PyYAML


因此,我的建议是使用YAML->;Python对象->;SQLite数据库,然后再返回。在

相关问题 更多 >