为了账号安全,请及时绑定邮箱和手机立即绑定

如何对文本文件执行多种功能

如何对文本文件执行多种功能

守着一只汪 2021-03-20 19:15:09
我是python的新手,经过一些练习后,我认为编写第一个程序是一个好主意!(也许是一个过分雄心勃勃的目标)。我有一个文本文件,想从中提取一些信息。文本文件是刺激传递软件的输出文件,并按行和列排列。我希望程序记录某个字符串存在多少次,然后还要从文件中的周围文本中记录另外两条信息。例如,从以下文本中:RXXXX   9   Picture CATCH_QUAIL_600_5_3000_2590_278 1026069 7999    2   3000    3   7900    2960    other   0RXXX    9   Picture poststim_fixation   1029236 0   1   25997   2   0   25900   other   0RXXXX   9   Response    115 1036879 7643    1我希望它报告说,有一个关于试验编号9的答复,并且该答复是针对图片“ CATCH_QUAIL”的。我认为,执行此操作的最佳方法是程序找到字符串“ Response”,然后从上方的两行和左侧的一列中提取信息。所以,这就是我到目前为止(抱歉,这很可悲):    x= open('file')    y= x.read()    y.split()    l= y.splitlines()然后,我知道我需要进行一些循环,循环遍历整个文件,如果找到“响应”字符串,则转到一个新循环,该循环将记录我想要的信息-不幸的是,我不知道该怎么做。如果可能的话,我真的很想学习如何做到这一点,因此,如果您可以给我一些提示而不是完整的代码,那就太好了。看完这里的其他一些问题后,很抱歉,如果这远远低于您期望的问题水平,但是我不确定还有什么地方可以解决!
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我认为很明显,有很多方法可以做到这一点,下面是我到达的代码-可能不是最整洁的代码,但是我发现它相当透明且易于操作。


x= open('file')

logs=x.readlines()

iLine = logs[6]


log_enumerater = enumerate(logs)

for iLine in log_enumerater:

    if iLine[1].find('CATCH') != -1: 

            Event=iLine[1].split('\t')[3]

            word=Event.split('_')[1]

            t0=int(iLine[1].split('\t')[4])

            print iLine[1].split('\t')[3].split('_')[1], iLine[0]

            print 'Catch in line ', iLine[0] 

            myLine = int(iLine[0])+2

            print 'Response in Line', myLine

    if iLine[1].find('Response') != -1:

            t1= int(iLine[1].split('\t')[4])

            ResponseTime= t1-t0  

            print ResponseTime

我一直在使用它来获取试用编号,现在已经对其进行了一些调整,以获取响应时间。


查看完整回答
反对 回复 2021-03-31
  • 3 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号