gpt4 book ai didi

Python正则表达式findall读取.csv文件中的行

转载 作者:行者123 更新时间:2023-11-30 22:57:33 25 4
gpt4 key购买 nike

我有一个 .csv 文件(或者可能是 .txt 文件),其中包含一些记录:

JB74XYZ Kerry   Katona  44  Mansion_House   LV10YFB
WL67IAM William Iam 34 The_Voice_Street LN44HJU

等等等等

我使用 python 打开并读取文件,然后使用正则表达式 findall (并尝试了类似的正则表达式规则)来识别匹配项:

import re
from re import findall

reg = "JB74XYZ"

with open("RegDD.txt","r")as file:
data=file.read()
search=findall(reg,data)

print (search)

给出了结果输出:

['JB74XYZ']

我已经对此进行了测试,看来我的正则表达式 findall 可以正常工作,因为它可以正确识别“匹配”并返回它。

  1. 我的问题是,如何才能返回“匹配”行的剩余内容? (最终我会将其写入一个新文件,但现在我只想打印匹配的行)。

我已经探索过 Python 字典作为索引事物的一种方式,但我碰壁了,除了正则表达式返回正结果之外什么也没有得到。

  • 我猜第二个问题可能是:我是否完全选择了错误的方法?
  • 我希望我的第一个问题足够具体,我花了几个小时(而不是几分钟)寻找具体的解决方案,并尝试了一些想法。我猜这不是一个特别棘手的概念,但如果可能的话我可以提供一些提示。

    最佳答案

    处理这个问题的更好方法是使用 Python 的 csv模块。从您的 CSV 的外观来看,我猜它是制表符分隔的,所以我放弃了这个假设。

    import csv

    match = "JB74XYZ"

    matched_row = None
    with open("RegDD.txt", "r") as file:
    # Read file as a CSV delimited by tabs.
    reader = csv.reader(file, delimiter='\t')
    for row in reader:
    # Check the first (0-th) column.
    if row[0] == match:
    # Found the row we were looking for.
    matched_row = row
    break

    print(matched_row)

    这应该从 matched_row 输出以下内容:

    ['JB74XYZ', 'Kerry', 'Katona', '44', 'Mansion_House', 'LV10YFB']

    关于Python正则表达式findall读取.csv文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603790/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com