当前位置:  开发笔记 > 编程语言 > 正文

Python初学者建议.正则表达式,字典等?

如何解决《Python初学者建议.正则表达式,字典等?》经验,为你挑选了3个好方法。

我正在编写我的第二个python脚本来尝试解析配置文件的内容,并希望得到一些noob建议.我不确定它是否最好使用正则表达式解析我的脚本,因为它的多行?我也一直在阅读关于词典的内容,并想知道这是不是很好的做法.我不一定只是朝着正确的方向寻找代码.

示例:我的配置文件如下所示.

Job {
  Name = "host.domain.com-foo"
  Client = host.domain.com-fd
  JobDefs = "DefaultJob"
  FileSet = "local"
  Write Bootstrap = "/etc/foo/host.domain.com-foo.bsr"
  Pool = storage-disk1
  }

我应该使用正则表达式,行拆分还是模块?如果我的配置文件中有多个作业,我会使用字典将作业与池关联吗?



1> Nicolas Duma..:

如果您可以更改配置文件格式,则可以直接将文件写为Python文件.

config.py

job = {
  'Name' : "host.domain.com-foo",
  'Client' : "host.domain.com-fd",
  'JobDefs' : "DefaultJob",
  'FileSet' : "local",
  'Write Bootstrap' : "/etc/foo/host.domain.com-foo.bsr",
  'Pool' : 'storage-disk1'
}

yourscript.py

from config import job

print job['Name']


这对于安全性来说通常非常危险,因为只需读取配置文件就可以执行任意操作.
+1:非常好.除非有可疑的人决定写疯狂的参数值,否则没有安全问题.

2> Dana the San..:

这个任务有许多现有的替代品,json,pickle和yaml来命名3.除非你真的想自己实现,否则你应该使用其中之一.即使你自己滚动,遵循上述之一的格式仍然是一个好主意.

此外,使用解析器/生成器或类似工具进行解析是一个更好的主意,正则表达式将更难维护,并且对于此类任务来说效率更低.



3> Jay Atkinson..:

如果您的配置文件可以转换为python文件,只需将其设为字典并导入模块即可.

Job = { "Name" : "host.domain.com-foo",
        "Client" : "host.domain.com-fd",
        "JobDefs" : "DefaultJob",
        "FileSet" : "local",
        "Write BootStrap" : "/etc/foo/host.domain.com-foo.bsr",
        "Pool" : "storage-disk1" }

您只需调用Job ["Name"]等即可访问这些选项.

ConfigParser也很容易使用.您可以创建一个如下所示的文本文件:

[Job]
Name=host.domain.com-foo
Client=host.domain.com-fd
JobDefs=DefaultJob
FileSet=local
Write BootStrap=/etc/foo/host.domain.com-foo.bsr
Pool=storage-disk1

保持简单,就像上面的一样.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有