Skip to main content
 首页 » 编程设计

python之如何使用 Python 读取文件中的一系列行

2025年05月04日29mayingbao

我正在尝试完成读取文件中重复出现的行范围的任务。该行以 004 开始,以 819 结束(这些代表订单。可以是 1 个或 1000+ 个订单 - 循环范围)。我想获取在第 004 行具有特定编号的特定文件,并获取所有高达 819 的行,以及之后的任何其他匹配的 004 行。我已经尝试过,但在获取范围内的线条时遇到了困难。我正在努力思考过去,但一直碰壁。感谢任何帮助和/或指导。

我正在读取的文件是一个 .txt 文件,格式为:

... 
004 54566 
006 P56 
008 Name  
010 61758012 
018 UMC   
027 
... 
819 Staven 

这是我迄今为止为读取该行而编写的代码:

os.chdir(r"C:\\mydirectory") 
wrkdir = os.getcwd() 
filelist = os.listdir(wrkdir) 
 
sampleList = [filename for filename in filelist if filename.endswith(".SFX")] 
 
filelist = sampleList 
 
for sfx in filelist: 
with open(sfx, 'r') as rfile: 
    lines = rfile.readlines() 
    for line in lines: 
        count+=1 
        if line[0:3] == '004': 
            gstring = line.split(' ') 
            #if gstring[1] == '8041': (This line did not work for me) 
                print line #(ultimately I will write these lines to a new file) 

我在这之后画了一个空白,不确定如何在行范围 004 - 819 之间打印,如果 004 == 'certain number'?

请您参考如下方法:

基本上是一个状态机

for sfx in filelist: 
    with open(rxf, 'r') as rfile: 
        keep = False 
        for line in rfile: 
            if line.startswith('004'): 
                gstring = line.split() # white space 
                if '8041' in gstring: 
                    keep = True 
 
            if keep and line.startswith('819'): 
                print line 
                keep = False 
 
            if keep: 
                print line