我很难弄清楚如何解析特定的文本,但我不只是解析特定的文本,我想解析包含在同一行中的所有内容,

我的代码

txt_file = open("test.txt",'r')
txt = txt_file.read()
txt_file.close()

count = 0

print("counting")
for data in txt:
    data = txt.strip()
    if data.find("holiday"):
        count = count + 1
print(count)
print(data)

txt文件示例

  1. 在七月四日,我要庆祝一个叫七月四日的节日!
  2. 1月1日是新年,是国际假日!
  3. 11月30日我要庆祝我朋友的生日

我试图解析txt文件中包含假日的所有行,以及句子中包含的其余文本,然后按行打印出来,

  1. 在七月四日,我要庆祝一个叫七月四日的节日!
  2. 1月1日是新年,是国际假日!

我正在寻找如何我可以做到这一点之前来到这里,但没有找到我正在寻找什么

推荐答案

我会使用readlines()而不是read(),这样你就会得到一个每行都有一个字符串的列表,而不是整个文件都有一个字符串:

txt_file = open("test.txt",'r')
txt = txt_file.readlines()
txt_file.close()

我还建议使用with读取文件,因为即使出现错误,它也会自动关闭文件:

with open("test.txt", "r") as txt_file:
    txt = txt_file.readlines()

你可以使用in操作符找到包含字符串"holidays"的行.然后,如果你在循环中移动print语句,它将打印每一行匹配:

for data in txt:
    if "holiday" in data:
        count = count + 1
        print(data)

如果您想在以后更多地处理匹配的行,也可以将它们保存到单独的数据 struct 中,而不只是打印它们:

matches = []

for data in txt:
    if "holiday" in data:
        count = count + 1
        matches.append(data)

print(matches)

Python相关问答推荐

如何才能知道Python中2列表中的巧合.顺序很重要,但当1个失败时,其余的不应该失败或是0巧合

韦尔福德方差与Numpy方差不同

max_of_three使用First_select、second_select、

使用miniconda创建环境的问题

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

基于字符串匹配条件合并两个帧

在vscode上使用Python虚拟环境时((env))

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

使用密钥字典重新配置嵌套字典密钥名

在含噪声的3D点网格中识别4连通点模式

Python全局变量递归得到不同的结果

如何排除prefecture_related中查询集为空的实例?

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

如何删除重复的文字翻拍?

Django Table—如果项目是唯一的,则单行

如何在GEKKO中使用复共轭物

使用xlsxWriter在EXCEL中为数据帧的各行上色

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

如何通过函数的强式路径动态导入函数?

生产者/消费者-Queue.get by list