2016-08-25 58 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')会做你想做的。