Skip to main content
 首页 » 编程设计

python之使用 Python 3、正则表达式和随机数解析文本文件

2025年05月04日26落叶无声

这是我正在使用的输入文本文件:https://gist.github.com/TestAcc7777/5983147

在文本文件中,前几行之后的每一行都包含“CORE X”,其中 X 是从 1 到 64 的数字。一些包含“CORE X”的行还包含“V3”或“V4”。

对于 X 的每个值,我想输出包含“CORE X”并且还只包含“V3”或“V4”之一的行 - 使用随机数生成器决定哪一个。

我在 Python 3 中编写了以下内容,并结合了一些正则表达式,以编写所有包含“CORE X”的行,但包含被拒绝的“V”片段的行除外:

import re 
import random 
 
tri = open(input("Input File: ")) 
tro = open(input("Output File: "),'w') 
 
for line in tri.readline(): 
    for i in [1,65,1]: 
        if random.random()>0.5: 
            q = 4 
        else: 
            q = 3 
        if re.search(r'CORE\s'+str(i), line): 
            if re.search(r'V', line): 
                if re.search(r'V'+str(q), line): 
                    tro.write(line) 
            else: 
                tro.write(line) 

但是,当我运行该程序时,它似乎很快就完成了并且输出文件是空的。我在 Python 和一般编程方面仍然相当缺乏经验,因此,如果您能帮助我的程序发挥作用,我们将不胜感激。

请您参考如下方法:

替换这一行

for line in tri.readline(): 

作为:

for line in tri: 

readline() 返回一行。

for line in tri.readline() 迭代第一行的每个字符(字符串)。