如何打印从循环附加的文件中的特定行?

2024-09-29 23:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

from itertools import zip_longest 
f = open("all_info.txt", "a")
with open("all_info.txt") as f, open ("over_speeding.txt") as f1, open("fine.txt") as fine, open("all details.txt", "a") as everything:
     for fline, fineline in zip_longest (f, fine, fillvalue=""): 
          everything.write (fineline.strip() + "   ---   " + fline.strip() + "\n")      


          a = open("all details.txt", "r")
          for line in everything:#the problem
               everything.strip()
               if line in f1:
                    with ("fine1.txt", "a") as fine1:
                         fine1.write(line)

这只是我全部代码的一部分。我的整个代码取车辆登记号码,然后检查它是否标准。然后输入行驶1英里所需的时间,用于计算速度。你知道吗

如果车速大于70英里/小时,则登记号和车辆行驶速度将进入文件_超速.txt. 然后,其他条件确定详细信息放在哪个文件中(但这并不重要)。你知道吗

我向您展示的代码将打开4个文件,其中精细.txt文件已设置并且已结束_超速.txt文件从我的整个代码中获取数据。全部_信息.txt文件将存储我的整个代码中的所有输入,然后使用zip\u lingest模块_信息.txt文件附加了精细.txt对所有人_详细信息.txt文件。你知道吗

我只想选择所有的行详细信息.txt如果是超速,则将其保存到fine1.txt

例如。精细.txt你知道吗

11111
22222
33333
44444

全部_信息.txt你知道吗

xxxxxxxx
dddddddd
aaaaaaaa
cccccccc

全部_详细信息.txt你知道吗

11111 --- xxxxxxxx
22222 --- dddddddd
33333 --- aaaaaaaa
44444 --- cccccccc

如果

xxxxxxx 

以及

aaaaaaa 

从档案里查出来的_超速.txt,然后在所有详细信息.txt文件:

11111 --- xxxxxxxx
33333 --- aaaaaaaa

应保存到fine1.txt文件中


Tags: 文件代码intxt信息asline详细信息
1条回答
网友
1楼 · 发布于 2024-09-29 23:25:09

我在理解你的代码时遇到了问题(当有人试图阅读你的代码时,变量的名称并没有真正的帮助,至少对我来说是这样),但我试着按照你期望的方式重写它:

from itertools import zip_longest
#EDIT why open all_info.txt twice?
#f = open("all_info.txt", "a")
with open("all_info.txt", "a") as f,\
    open("over_speeding.txt") as f1,\
    open("fine.txt") as fine,\
    open("all details.txt", "a") as everything,\
    open("fine1.txt", "a") as fine1: # moved opening fine1 here

    for fline, fineline in zip_longest(f, fine, fillvalue=""):
        #EDIT
        line_to_write = fineline.strip() + "    -   " + fline.strip() # so we don't need to write it twice
        everything.write(line_to_write + "\n") # write to file with newline
        if line_to_write in f1: # compare the line with values in over_speeding
            fine1.write(line_to_write)

因为它只是一个脚本的一部分,我没有所有的数据,我无法测试它。你的方法是:把所有的行都写下来,然后分别检查所有的行。我的方法是:获取行,写它,并在同一个循环中检查它。如果我理解你的代码,它也应该这么做。请询问或指出任何错误/误解。你知道吗

相关问题 更多 >

    热门问题