2013-07-03 40 views
0

我的文本文件MyText.txt文本文件閱讀和打印數據

This is line 1 
This is line 2 
Time Taken for writing this#  0 days 0 hrs 1 min 5 sec 
Nothing Important 
Sample Text 

目的

要閱讀的文本文件,如果找到「樣本測試存在的文件中。如果存在打印寫入文件所花費的時間(這是文件中已有的值)「

我的代碼

with open('MyText.txt', 'r') as f: 
    f.readline() 
    for line in f: 
     if 'Sample Text' in line: 
      print "I have found it" 
      f.seek(0) 
      f.readline() 
      for line in f: 
       if 'Time Taken' in line: 
        print line 
        print ' '.join(line.split()) 
f.close() 

該代碼工作正常。我的問題是如果這個代碼可以做得更好。考慮到我是python的新手,我相信會有更好的方法來編寫這個代碼。任何人都可以爲此提供替代/更快的方法。

+3

這屬於上http://codereview.stackexchange.com/ – TerryA

回答

0

這應該工作..

with open('MyText.txt', 'r') as f: 
    lineArr=f.read().split('\n') 
    if 'Sample Text' in lineArr: 
    timeTaken = [s for s in lineArr if "Time Taken" in s] 
    print timeTaken[0] 
+0

伴侶此輸出'[ '拍攝時間寫這#0 0天小時1分5秒']' – misguided

+0

@ misguided-這不是你想要的嗎? – vidit

+0

我想要結果文件名而不是列表。您更改的代碼雖然有幫助,但:) – misguided

2

個人而言,我會得到的文本出來,然後就可以進行操作,如果該文件是相當小的。

f = open("mytext.txt","r") 
contents = f.read() 
f.close() 

for row in contents.split("\n"): 
    if "time" in row: 
     print(row.split("time")[1]) 
+0

配合您只考慮了1個條件,而不是2 – misguided

2
f = open('sample', 'r') # open file in read mode 
data = f.read()  # copy to a string 
f.close()    # close the file 
print data   # print the data