Python 读入文件中以某个字符开头的每一行

Python 读入文件中以某个字符开头的每一行,python,Python,我试图读入文件中以“X:”开头的每一行。我不想读“X:”本身,只想读下一行的其余部分 with open("hnr1.abc","r") as file: f = file.read() id = [] for line in f: if line.startswith("X:"): id.append(f.line[2:]) print(id) 它没有任何错误,但不会打印任何内容 for line in f:

我试图读入文件中以“X:”开头的每一行。我不想读“X:”本身,只想读下一行的其余部分

with open("hnr1.abc","r") as file: f = file.read()
id = []
for line in f:
    if line.startswith("X:"):
        id.append(f.line[2:])
print(id)
它没有任何错误,但不会打印任何内容

for line in f:
        search = line.split
        if search[0] = "X":
            storagearray.extend(search)
这将为您提供一个包含所有所需行的数组,但它们将被拆分为单独的单词。此外,在我们在上面的代码块中调用storagearray之前,您需要先定义storagearray。这是一个不雅观的解决方案,因为我自己也是一个学习者,但它应该能完成任务

编辑:如果要输出行,只需使用python的内置打印函数:

str(storagearray)    
print storagearray    
试试这个:

with open("hnr1.abc","r") as fi:
    id = []
    for ln in fi:
        if ln.startswith("X:"):
            id.append(ln[2:])
print(id)
不要使用文件或行这样的名称

注意,append只使用项名称,而不是作为文件的一部分


通过将文件预读入内存,for循环是按字符而不是按行访问数据

读取文件中的每一行(
for
循环)
选择包含
X:

使用索引
0:
对行进行切片,起始字符/字符串为
X:=ln[0:][/code>
打印以
X:

for ln in input_file:
    if  ln.startswith('X:'):
        X_ln = ln[0:]
        print (X_ln)

您还没有说明您的代码是否正常工作,或者您有哪些错误,是不是应该是
id.append(第[2:])
?请不要使用id作为名称,因为它是一个内置函数。我将其更改为
id.append(第[2:])
,但它不会更改任何输出。此外,如果我想阅读以“t:”开头的内容行,但只阅读以“t:”开头的第一行和第二行,我该怎么做呢?只要保留一个计数器就行了——它正开始成为一个状态机——这是一个更大的问题discussion@gkusner:名称
可以,但不应将其用作自己的变量名。虽然这可能会回答问题,你应该在你的答案中加入一些解释,解释为什么这可以解决问题中的问题。这使它对以后遇到相同问题的人更有价值。您的代码不起作用,因为它没有回答最初的问题。我试图读入文件中以“X:”开头的每一行。我不想读“X:”本身,只想读下面这行的其余部分。Karel,代码将打印所有以“X:”开头的行,而不仅仅是“X:”打印完整的行