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

我是python的新手,经过一些练习后,我认为编写第一个程序是一个好主意!(也许是一个过分雄心勃勃的目标)。


我有一个文本文件,想从中提取一些信息。文本文件是刺激传递软件的输出文件,并按行和列排列。


我希望程序记录某个字符串存在多少次,然后还要从文件中的周围文本中记录另外两条信息。


例如,从以下文本中:


RXXXX   9   Picture CATCH_QUAIL_600_5_3000_2590_278 1026069 7999    2   3000    3   7900    2960    other   0


RXXX    9   Picture poststim_fixation   1029236 0   1   25997   2   0   25900   other   0


RXXXX   9   Response    115 1036879 7643    1

我希望它报告说,有一个关于试验编号9的答复,并且该答复是针对图片“ CATCH_QUAIL”的。


我认为,执行此操作的最佳方法是程序找到字符串“ Response”,然后从上方的两行和左侧的一列中提取信息。


所以,这就是我到目前为止(抱歉,这很可悲):


    x= open('file')

    y= x.read()

    y.split()

    l= y.splitlines()

然后,我知道我需要进行一些循环,循环遍历整个文件,如果找到“响应”字符串,则转到一个新循环,该循环将记录我想要的信息-不幸的是,我不知道该怎么做。


如果可能的话,我真的很想学习如何做到这一点,因此,如果您可以给我一些提示而不是完整的代码,那就太好了。


看完这里的其他一些问题后,很抱歉,如果这远远低于您期望的问题水平,但是我不确定还有什么地方可以解决!


守着一只汪
浏览 182回答 3
3回答

jeck猫

我认为很明显,有很多方法可以做到这一点,下面是我到达的代码-可能不是最整洁的代码,但是我发现它相当透明且易于操作。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我一直在使用它来获取试用编号,现在已经对其进行了一些调整,以获取响应时间。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python