这是我正在使用的输入文本文件: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() 迭代第一行的每个字符(字符串)。
