在Python中使用文本文件

DPd*_*Pdl 4 python text-files

我正在阅读一个> 10,000行的文本文件.

results_file = open("Region_11_1_micron_o", 'r')
Run Code Online (Sandbox Code Playgroud)

我想在特定字符串"chart"之后跳转到文件中的行,该字符串出现在第no行附近.7000(不同文件不同).有没有办法方便地做到这一点,而无需阅读文件的每一行?

Mir*_*j50 5

如果您知道精确的行号,那么您可以使用python的linecache模块来读取特定的行.您无需打开该文件.

import linecache

line = linecache.getline("test.txt", 3)
print(line)
Run Code Online (Sandbox Code Playgroud)

输出:

chart
Run Code Online (Sandbox Code Playgroud)

如果你想从那一行开始阅读,你可以使用islice.

from itertools import islice

with open('test.txt','r') as f:
    for line in islice(f, 3, None):
        print(line)
Run Code Online (Sandbox Code Playgroud)

输出:

chart
dang!
It
Works
Run Code Online (Sandbox Code Playgroud)

如果您不知道精确的行号并想要在包含该特定字符串的行之后开始,请使用另一个for循环.

with open('test.txt','r') as f:
    for line in f:
        if "chart" in line:
            for line in f:
                # Do your job
                print(line) 
Run Code Online (Sandbox Code Playgroud)

输出:

dang!
It    
Works
Run Code Online (Sandbox Code Playgroud)

test.txt 包含:

hello
world!
chart
dang!
It
Works
Run Code Online (Sandbox Code Playgroud)

我认为您不能直接跳到特定的行号.如果你想这样做,那么肯定你必须通过文件并以某种格式或其他格式存储行.在任何情况下,您都需要至少遍历文件一次.