python - 使用 tee 函数后不再定义先前定义的变量

时间:2021-07-06 02:54:34

标签: python

请原谅这个菜鸟问题,但刚走出教室!

当找到字符“VOUCHER”时,我需要从上一行中提取一个字符串。

样本数据:

<块引用>

“寿司 $1 折扣 1 $1.00”
" 凭证 #:47412 "

我使用以下代码提取字符串:

voucher,type = tee(rf)
        for i in range(1):
            next(voucher)
            for v,t in zip(voucher,type):
                if '"       VOUCHER #:' in v:
                    type = t.split()
                    type2 = (type[0:len(type)-2])

虽然上面的代码允许我提取“SUSHI $1 DISCOUNT”,但不再定义之前定义的变量...代码结构如下:

from itertools import tee

with open("e-journal.txt","r") as rf:
    with open("e-journal_py output.txt","w") as wf:

        for line in rf:
            line = line.strip()

            if line.startswith("XX"):
                variable "A" defined here

            if line.startswith("XX"):
                variable "B" defined here

            voucher,type = tee(rf)
            for i in range(1):
                next(voucher)
                for v,t in zip(voucher,type):
                    if '"       VOUCHER #:' in v:
                        type = t.split()
                        type2 = (type[0:len(type)-2])
                        print(type2,variable "A",variable "B")

我需要将之前定义的变量设为非局部变量还是全局变量?有没有比使用 tee 函数更好的方法来提取“寿司 $1 折扣”?将不胜感激!

1 个答案:

答案 0 :(得分:0)

拆分文字时您正在覆盖文字,但也许您不想这样做。使用不同的变量名,这样就不用输入类型了。例如,您可以改写 t。

t = t.split()
type2 = (t[0:len(t)-2])