Python论坛  - 讨论区

标题:Re: [python-chinese] 怎样在文本文件中有选择的读取数据

2005年06月20日 星期一 16:09

Zoom Quiet zoom.quiet at gmail.com
Mon Jun 20 16:09:53 HKT 2005

不敢!
列表中真正的高手太多了,我是正好手边儿有代码,所以 copy 一下子
对于好学的新同志迈向原则是
授之于渔,鄙视授之于鱼 的行为的
否则就是直接找人帮你干活的意思了………………

实在大急的话,有时候是比较糊涂了,建议先整理好思路,确定主要问题,
查一下子手册,立即就会解决的!

也在北京的话,有机会一同参加活动哪!
http://wiki.woodpecker.org.cn/moin/PythonCN
BPUG 在准备ing...


在 05-6-20,Zhongwang Xu<zhongwangxu at gmail.com> 写道:
> 谢谢高手的教导和鼓励,载你给的代码的基础上,我已经研究了一整天,
> 还是没有任何进展。
> 
> 由于时间比较紧,着急要出东西,高手能否再给些提示。
> 比如,有什么函数实现无用行的过滤,以及怎样搜索有用的数据等。
> 
> 再次感谢了。
> 
> 听口气,高手像是北京的吧,有机会一定请你吃饭。
> 
> 
> On 6/20/05, Zoom Quiet <zoom.quiet at gmail.com> wrote:
> > 编程的乐趣就在于自个儿可以自由的玩弄一切数据!
> > 正是因为Python 可以快速的实现你的想法才值得去学习,研究的哪?
> > 因为你的数据文本算是规范的,
> > 而你要的数据都是以
> >         Code  :
> >         State :
> > 打头的行,所以,只要设定条件,就可以让Py 自动抓取出所有你感兴趣的数据,
> > 然后就可以自由的过滤,重组,输出了!
> >
> > 一切都在于你的思路,编程仅仅是未节了…………
> > 我想我给出的代码足够说明问题了,你在其基础上尝试一下子,一定可以完成任务的
> >
> > 在 05-6-20,Zhongwang Xu<zhongwangxu at gmail.com> 写道:
> > > 非常感谢你的回复,由于我是初学编程,有很多东西还不是很明白。
> > >
> > > 我现在的情况是,有这样一个数据文件,见附件data.txt,
> > > 从中选择索要的数据,根据要求格式输出。输出例子见results.txt。
> > > 学习了你的回复,我知道如何处理数据行的数据,
> > > 但是在其他解释行的数据,格式不太一样,我怎么处理和获得有效数据呢?
> > >
> > >
> >
> >
> > --
> > [Time is unimportant, only life important!]
> >
> 


-- 
[Time is unimportant, only life important!]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年06月20日 星期一 17:31

Zoom Quiet zoom.quiet at gmail.com
Mon Jun 20 17:31:04 HKT 2005

疯狂注释版本!你尝试一下子?
import os,sys
# 读入信息为行数据数组
data = open("data.txt","r").readlines()
# 我们期望的数据容器
Matrix = {}
"""以长度为标记,分别对应的收集对应的数据组成为字典
{"长度":[
    [Code 数据组..]
    ,[State 数据组..]
    ]
    ...
}
"""
# 假定数据文本都是规范的,就可以利用条件的固定出现次序来操作
loopKey = ""
for line in data:
    if 40>len(line):
        # 忽略数据太少的行
        if "Main Loop:" in line:
            # 获取长度信息
            loopKey = line.split()[-2]
            print loopKey
            Matrix[loopKey]=[]
        continue
    elif "====="in line:
        # 忽略修饰行
        continue
    elif "#1" in line:
        # 忽略标题行
        continue    
    elif "Event :" in line:
        # 忽略事件数据行
        continue
    elif "Code  :" in line:
        # 开始记录数据到目标容器中
        puredata = line.split()[2:]
        #print puredata 
        Matrix[loopKey].append(puredata)       
    elif "State  :" in line:
        # 开始记录数据到目标容器中
        puredata = line.split()[2:]
        #print puredata
        Matrix[loopKey].append(puredata)         
    else:
        pass
        
# 现在我们有了嵌套的数据对象,打印检验一下
#print Matrix["4000"]
# 依照不同的长度分组,以各组数据的 Code 数据为标准进行检验归整数据
"""期待的数据结构类似:
{"长度":[
    (Code数据,对应的State数据)
    ...]
    }
即一个混合数组,元组,的数据字典
"""
result = {}
for key in Matrix:
    # 对应的先创建结果的字典项
    result[key]=[]
    # 因为 Code与State是对应的数据,所以可以利用其相同的索引
    Code = Matrix[key][0]
    State = Matrix[key][1]
    for i in range(0,len(Code)-1):
        #print Code[i]
        #print State[i]
        if "0x0000"==Code[i]:
            pass
        else:
            # 就是这样的利用!
            result[key].append((Code[i],State[i]))
print result
# KO! 现在数据过滤明白了,按照意愿组织一下子以便输出,进一步进行图表制作
# 先在屏幕中测试
# 使用一个总输出变量记录在案
output = ""
for key in result:    
    for data in result[key]:
        #print data
        exp = key                    
        exp += "    "+data[0]          
        exp += "    "+data[1]
        #print exp
        output += exp+"\n"
        exp = ""

print output
# KO! 最后写到文件中!
open("ZqOut.txt","w").write(output)


在 05-6-20,Zoom Quiet<zoom.quiet at gmail.com> 写道:
> 不敢!
> 列表中真正的高手太多了,我是正好手边儿有代码,所以 copy 一下子
> 对于好学的新同志迈向原则是
> 授之于渔,鄙视授之于鱼 的行为的
> 否则就是直接找人帮你干活的意思了………………
> 
> 实在大急的话,有时候是比较糊涂了,建议先整理好思路,确定主要问题,
> 查一下子手册,立即就会解决的!
> 
> 也在北京的话,有机会一同参加活动哪!
> http://wiki.woodpecker.org.cn/moin/PythonCN
> BPUG 在准备ing...
> 
> 
> 在 05-6-20,Zhongwang Xu<zhongwangxu at gmail.com> 写道:
> > 谢谢高手的教导和鼓励,载你给的代码的基础上,我已经研究了一整天,
> > 还是没有任何进展。
> >
> > 由于时间比较紧,着急要出东西,高手能否再给些提示。
> > 比如,有什么函数实现无用行的过滤,以及怎样搜索有用的数据等。
> >
> > 再次感谢了。
> >
> > 听口气,高手像是北京的吧,有机会一定请你吃饭。
> >
> >
> > On 6/20/05, Zoom Quiet <zoom.quiet at gmail.com> wrote:
> > > 编程的乐趣就在于自个儿可以自由的玩弄一切数据!
> > > 正是因为Python 可以快速的实现你的想法才值得去学习,研究的哪?
> > > 因为你的数据文本算是规范的,
> > > 而你要的数据都是以
> > >         Code  :
> > >         State :
> > > 打头的行,所以,只要设定条件,就可以让Py 自动抓取出所有你感兴趣的数据,
> > > 然后就可以自由的过滤,重组,输出了!
> > >
> > > 一切都在于你的思路,编程仅仅是未节了…………
> > > 我想我给出的代码足够说明问题了,你在其基础上尝试一下子,一定可以完成任务的
> > >
> > > 在 05-6-20,Zhongwang Xu<zhongwangxu at gmail.com> 写道:
> > > > 非常感谢你的回复,由于我是初学编程,有很多东西还不是很明白。
> > > >
> > > > 我现在的情况是,有这样一个数据文件,见附件data.txt,
> > > > 从中选择索要的数据,根据要求格式输出。输出例子见results.txt。
> > > > 学习了你的回复,我知道如何处理数据行的数据,
> > > > 但是在其他解释行的数据,格式不太一样,我怎么处理和获得有效数据呢?
> > > >
> > > >
> > >
> > >
> > > --
> > > [Time is unimportant, only life important!]
> > >
> >
> 
> --
> [Time is unimportant, only life important!]
> 


-- 
[Time is unimportant, only life important!]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号