将多个变量写入一个文件

时间:2019-06-13 16:09:09

标签: python

我正在尝试替换文本文件中字符串内的数字。我基本上是想在三个不同的字符串中找到一个数字,并从中减去一个。然后将其写入一个大文件。我收到错误消息“ TypeError:只能将str(而不是“ NoneType”)连接到str”。我也如何将变量S,T,U写入一个文件。我看到它正在遍历每个变量,并在文件上执行特定的变量功能。我想一起做S,T,U。

我尝试为f = fn(107),g = fn(108),h = fn(394)写不同的函数,但是它没有将任何内容写入文本文件。

import re

file = '\\\MyDataNEE\\user$\\bxt058y\\Desktop\\75736.oxi.error'

for line in open(file):
    match = re.search('BatchSequence="(\d+)"', line)
    if match:
        print(int(match.group(1)) + 1)


with open(file, 'rt') as fin:
    with open('out.txt', 'wt') as fout:
        for line in fin:
            def fn(batch_sequence, scan_sequence, num_sequence):
                val = yield
                val2 = yield
                val3 = yield
                while True:
                    val = yield str(val) if val < batch_sequence else 
                    str(val - 1)
                    val2 = yield str(val2) if val < scan_sequence else 
                    str(val2 - 1)
                    val3 = yield str(val3) if val < num_sequence else 
                    str(val3 - 1)
            f = fn(107,108,394)
            next(f)
            s = re.sub(r'BatchSequence="(\d+)"', lambda g: 
'BatchSequence="' + f.send(int(g.group(1))) + '"', line)
            t = re.sub(r'ScanSequence="(\d+)"', lambda h: 'ScanSequence="' 
+ f.send(int(h.group(1))) + '"', line)
            u = re.sub(r'NumPages=""(\d+)"', lambda i: 'NumPages="' + 
f.send(int(i.group(1))) + '"', line)
            fout.write(s)
            fout.write(t)
            fout.write(u)

当前输出:

BatchSequence="105"
BatchSequence="107"
BatchSequence="108"
BatchSequence="109"
BatchSequence="110"
BatchSequence="111"
BatchSequence="112"

ScanSequence="106"
ScanSequence="108"
ScanSequence="109"
ScanSequence="110"
ScanSequence="111"

NumPages="394"

预期输出:

BatchSequence="105"
BatchSequence="106"
BatchSequence="107"
BatchSequence="108"
BatchSequence="109"
BatchSequence="110"
BatchSequence="111"

ScanSequence="106"
ScanSequence="107"
ScanSequence="108"
ScanSequence="109"
ScanSequence="110"

NumPages="393"

0 个答案:

没有答案