每周一题——读写配置文件。

每周一题——读写配置文件。

群里面的朋友提到是否应该出点题目给新加入python的朋友。我想值得一试。

本周题目如下:
读写配置文件是经常碰到操作,请大家写出自己读写配置文件的程序,要求:
1、配置文件可以以#作为注释,并不处理。
2、所写的程序应以import导入使用。
3、有自测试代码。
4、有注释。

希望大家踊跃参加。


QUOTE:
原帖由 "xichen" 发表:
群里面的朋友提到是否应该出点题目给新加入python的朋友。我想值得一试。

本周题目如下:
读写配置文件是经常碰到操作,请大家写出自己读写配置文件的程序,要求:
1、配置文件可以以#作为注释,并不处理。
2?.........

创意很好 支持!希望能够坚持下来。

题目出的是不是有点泛,能否更细化一些,例如给出一个特定的配置文件。
这样大家便于交流比较。

纯属个人意见,仅供参考。
版主的意思是希望有自定的格式,没必要千篇一律,当然如果你不知道使用什么好完全可以考虑标准的格式,如:ini,xml都可以。
好象关注的人多,但是真正动手写的人少.一方面新手老说没有项目可以联系,一方面却不愿意花精神和时间来些,真让人郁闷.
可能被老师教惯了吧.总想google到最直接的答案.
呵呵。求人不如求已呀。


QUOTE:
原帖由 "xichen" 发表:
好象关注的人多,但是真正动手写的人少.一方面新手老说没有项目可以联系,一方面却不愿意花精神和时间来些,真让人郁闷.
可能被老师教惯了吧.总想google到最直接的答案.

能想到用google就不错了,更直接的是朝人要,呵呵
[quote]原帖由 "limodou"]版主的意思是希望有自定的格式,没必要千篇一律,当然如果你不知道使用什么好完全可以考虑标准的格式,如:ini,xml都可以。[/quote 发表:



还真不知道什么是标准的格式,要不劳驾你给一个标准格式的配置文件吧
不必千篇一律 这个我自己用  
爱学习的新手来了

俺是彻底的新手。如果写的有问题,不要笑

[Copy to clipboard] [ - ]
CODE:
#! /usr/bin/python

import os
import sys

class property:
        """ Assume that property file is "ARG=VALUE" format and no space is allowed on either side of \"=\" """
        def __init__(self, pfile):
                f = open(pfile, "r")
                linel = f.readlines()
                list = map(self.split, linel)
                #remove comments marker
                if list.count(None) >; 0:
                        list.remove(None)
                self.dict = dict(tuple(list))

        def split(self, str):
                # remove newline
                str = str.strip("\n")
                # remove blank spaces
                str = str.strip()
                # Treat comments separately
                if str.startswith("#"):
                        r = None
                else:
                        # At most 2 parts
                        r = str.split("=", 1)
                        r = map(self.stripbs, r)
                return r

        def stripbs(self, str):
                return str.strip()

        def getdict(self):
                return self.dict


if __name__ == "__main__":
        print "Self Test Begin"
        # Generate the test file
        if len(sys.argv) == 1:
                os.system("echo \"# Comment\" >; test.properties")
                os.system("echo \"LOCK=true\" >;>; test.properties")
                os.system("echo \"TEST.config.1=234\" >;>; test.properties")
                pf = property("test.properties");
        else:
                pf = property(sys.argv[1])
        print pf.getdict();

下周一我贴出我写的。
好啊。等着看xichen老大的。呵呵