在大多数日志处理系统中,日志文件都是tab分隔的文本文件,文件的模式是单独提供的。 例如。你知道吗
12 tom tom@baidu.com
3 jim jim@baidu.com
架构是
id : uint64
name : string
email : string
为了找到这样的记录个人姓名=='汤姆',代码是
for each_line in sys.stdin:
fields = each_line.strip().split('\t')
if feilds[1] == 'tom': # magic number
print each_line
有很多神奇的数字1 2 3。你知道吗
有没有像google protocol buffer(二进制)这样的工具,我们可以直接从文本中构建对象?你知道吗
Message Person {
uint64 id = 1;
string name = 2;
string email = 3;
}
所以我们比造人更像这样:人=库BuildFromText(行)
for each_line in sys.stdin:
person = lib.BuildFromText(each_line) # no magic number
if person.name == 'tom':
print each_line
你怎么知道的库BuildFromText()函数假设知道如何命名字段?它们只是你传递给它的那一行的值,对吗?下面是如何在Python中执行此操作:
相关问题 更多 >
编程相关推荐