如何逐行读取文本文件并对特定行进行处理?

2 投票
3 回答
1144 浏览
提问于 2025-04-18 00:16

我想要逐行读取一个文本文件。我在网上找到了如何逐行读取的方法,但不知道怎么调用文本文件中的特定行。简单来说,我想对某些特定的行做点事情(比如第一行、第二行、第三行等等):

if particular_line is something:
....

另外,我还想知道怎么做类似这样的事情:

if return_from_another_function in file:
....

总之,我想要一个例子,看看如果可能的话,我该怎么做。

3 个回答

1

可能这会对你有帮助:

myfile = open(filename, "rb", 0)
for line in myfile
   if(line is "your string to be compared")
       print "do something here" 
1

标准的 linecache 模块让这个变得非常简单:

import linecache
theline = linecache.getline(thefilepath, desired_line_number)

关于你的第二个问题(来自答案):

如果你的文件不是太大,可以把它全部读入一个字符串中,然后直接使用这个字符串(这样做比逐行读取和检查要简单得多,而且通常也更快):

if 'blabla' in open('example.txt').read():
    print "true"
2
f = open('filename', 'r')
lines = f.readlines()

现在你得到了一个列表类型的对象 lines,你可以用它来访问特定的行,或者遍历这个列表去查找某一行。

撰写回答