Python,读取特定的文件块

mrdos01

我有此文本,我想阅读它的特定内容:

fist one:
=======
1
b
2
c
3

next one:
=========
4
5
d
6

7


third one:
=======
8
9
e
10


fourth one:
=======
11
12
d
13

我想只读取每个块的编号并将它们写入一个文件中。输出应为:

1
b
2
c
3
8
9
e
10

很抱歉,因为上下文不同,我无法在此处编写代码。我尝试了for循环,正则表达式和readline(s)以及Startwith(“第一拳:”),但是无法跳过“ =====”,我想检查块的名称是否匹配,然后仅取数字。

many thanks for your help
帕特里克·阿特纳

读取所有行并进行处理-如果某行在已知块名列表中,则设置一些布尔值。跳过下一行====行并捕获此行之后的所有行,直到任一行:

  • 给出应读取的新块名称(然后您需要再次“吃”一个====)
  • =====一行出现(==捕获结束,因为我们已经传递了下一个块标题,并且不想保留其编号)
  • 文件已结束

可能看起来像这样:

# write data
with open("f.txt","w") as f:
    f.write("""fist one:\n=======\n1\n2\n3\n\nnext one:\n=========\n4\n5\n6\n\n7\n\n
third one:\n=======\n8\n9\n10\n\n\nfourth one:\n=======\n11\n12\n13""")

# list of blocks to be read
names = ["next one:", "fourth one:"]

# file processing
with open("f.txt") as r, open("r.txt", "w") as w:
    capture = False
    startingline = False
    for line in r:
        l = line.strip()  # remove \n for l
        if not l:
            continue      # skip empty lines
        if l in names:    # check if this is a block we watch out for
            startingline = True      # this will "eat" the ===== line that follows
            capture = True           # this allows capturing 
            continue
        if startingline:  # "eat" ========
            if set(l) == set("="):
                startingline = False
            continue
        
        if capture:       # if we capture we keep all isdigit lines and stop
            if l.isdigit():
                w.write(line)
            elif set(l) == set("="):   # if we encounter another ==== line
                capture = False

with open("r.txt") as f:
    print(f.read())

输出:

4   # next one
5
6
7
11  # fourth one
12
13

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中读取和复制特定的文本块

来自分类Dev

使用熊猫读取Python中的csv文件块

来自分类Dev

在Python中明智地读取文件块

来自分类Dev

使用熊猫读取Python中的csv文件块

来自分类Dev

读取文件,直到python中的特定行

来自分类Dev

从Python中的.dat文件读取特定列

来自分类Dev

在python中读取文件的特定字节

来自分类Dev

读取csv文件中的特定行,python

来自分类Dev

如何按块读取文件

来自分类Dev

逐块读取(文本)文件

来自分类Dev

读取块文件Netty Java

来自分类Dev

在python中将特定字符后的大文件分成较小的块?

来自分类Dev

sed读取文件,在特定行之前获取一个块

来自分类Dev

读取文件,并在Python中打印文件的特定行

来自分类Dev

在flutter / dart中读取特定的字节块

来自分类Dev

读取文件,每块一块

来自分类Dev

在C中逐块读取文件

来自分类Dev

如何在do块中读取文件

来自分类Dev

用熊猫按块读取txt文件

来自分类Dev

逐块读取文本文件

来自分类Dev

PHP读取文件块中的行

来自分类Dev

如何用node块读取文件?

来自分类Dev

在bash中按块读取SQL文件

来自分类Dev

从python中的文本文件读取特定列

来自分类Dev

Python程序如何加载和读取文件中的特定行?

来自分类Dev

如何在python中读取csv文件的特定行?

来自分类Dev

使用Pandas Python从文件中读取特定日期行

来自分类Dev

如何从txt文件读取多行特定内容(python)

来自分类Dev

从文本文件读取特定的Python列表