读取文件,并在Python中打印它的特定行

时间:2014-02-21 20:59:33

标签: python-2.7

我有一个文件说1.txt,每行包含一个字符串和两个数字。我在某些方面知道A这样的字母,但我不知道它的数字。问题是我需要找到具有特定字母的这一行,并打印出包括未知数字在内的整行。

3 个答案:

答案 0 :(得分:1)

你可以读取行并可以检查它......

file = open('1.txt','r')
for line in file.readlines():
    if line == 'A12':
       print line, 'this what you are looking for'

答案 1 :(得分:1)

您可以遍历文件的每一行并显示包含A12的行:

with open('1.txt') as f:
    for line in f:
        if line.strip() == 'A21':
            print(line)

答案 2 :(得分:0)

我不太清楚你在寻找什么。但根据您对其他答案的评论,我认为您的问题如下:

  

您有一个包含行的文本文件。在本文的每一行   文件可能有一个'A'序列,后面跟着任何2个数字。例如:A21,   A00,A34等。所以,你正在寻找一种方法来找到这样的序列。

基于此,我找到了一个解决方案,我认为可以做你的工作。那么代码就是这样的。它首先会读取文本文件的每一行,然后只检查行中是否有字母A。如果是,那么我将检查A后面的2个字母是否是数字。如果它们是数字,那么我只需打印A和2个数字。

以下是我的示例代码:

file = open('c:\\1.txt','r')
searchLetter = "A"
for line in file.readlines():
    if searchLetter in line:
        positionOfA = line.index(searchLetter)
        if line[positionOfA+1].isdigit() & line[positionOfA+2].isdigit():
            print searchLetter+line[positionOfA+1]+line[positionOfA+2]

要测试此代码,请在1.txt目录中创建一个名为c:\的文本文件,其中包含以下内容:

Ahhhhhhhhhhhhhhhh
2A21kkkkkkkkkkkkkkkk
432hhhhhA43hhhh

我测试了这段代码,输出结果如下:

A21
A43

更新:使用正则表达式可进一步简化解决方案。因为如果一行中有多个A,上面的代码将无法正常工作。所以这是更好的解决方案。

import re
file = open('1.txt','r')
for line in file.readlines():
    sequence = re.findall(r"A\d\d", line)
    if sequence:
        for i in sequence:
            print i