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

10-06 10:22
查看更多