2016-08-25 86 views
0

我想使用python讀取文本文件並打印出特定的行。問題是我想打印一個以「名義」(以及我知道該怎麼做)這個詞開頭的行,以及一些不能被某些特定字符串識別的行。你能指點我能夠做到的一些代碼行嗎?Python,選擇一個特定的行

+7

向我們展示您的代碼到目前爲止,您嘗試了什麼 – depperm

+4

看起來您希望我們爲您編寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出以及實際獲得的輸出(控制檯輸出,回溯等)。您提供的細節越多,您可能會收到的答案就越多。檢查[FAQ]和[問]。 –

+0

>你能指出我能夠做到的一些代碼行嗎? <是:https://github.com/ranxian/rate3/blob/d226de257360a477b0958ec0a22b4b201a2b8b65/tools/cpp/test/convert.py#L5 – myaut

回答

0

以誠信的假設下,這將有助於你開始編碼,並呈現出一些努力,在這裏你去:

file_to_read = r'myfile.txt' 

with open(file_to_read, 'r') as f_in: 
    flag = False 
    for line in f_in: 
     if line.startswith('nominal'): 
      print(line) 
      flag = True 
     elif flag: 
      print(line) 
      flag = False 

它可能工作外的開箱但請試花時間經過它,你一定會得到它背後的邏輯。請注意,python中的文本比較區分大小寫。

0

如果文件不是太大,你可以把它全部的列表:

def printLines(fname): 
    with open(fname) as f: 
     lines = f.read().split('\n') 
     if len(lines) == 0: return None 
     if lines[0].startswith('Nominal'): print(lines[0]) 
     for i, line in enumerate(lines[1:]): 
      if lines[i-1].startswith('Nominal') or line.startswith('Nominal'): 
       print(line) 

然後例如printLines('test.txt')會做你想做的。