Python - 用于CSV或XLS匹配的正则表达式,以及匹配的返回位置

问题描述 投票:0回答:1

我希望使用正则表达式在csv或xls文件中搜索字符串值,然后将匹配项的(行,列)位置返回给我。我在搜索和返回匹配的单元格位置的命令方面都遇到了问题。有什么技巧可以让Python变得简单吗?

这是我到目前为止:

import re
import csv
import numpy as np
import pandas as pd
import os
from pandas import *
from xlsxwriter import worksheet

def search_method(patterns, phrase):
    for pat in patterns:
        print("Searching fo pattern {}".format(pat))
        print('\n')

new_data = ''

with open(new_data) as csvDataFile:
    csvReader = csv.reader(csvDataFile)

    data = list(csv.reader(csvDataFile))

    print(data[1])

test_phrase = data
test_patterns = ['S/N:{1}']
search_method(test_patterns, test_phrase)
print(type(data))
print(search_method(test_patterns, test_phrase))
python csv expression xls
1个回答
0
投票

对于RegEx,您需要执行re.compile并使用search()在每个逗号分隔值中查找表达式

pattern = re.compile('S/N:{1}']

因此,在您的search_method中,您需要以下内容:

def search_method(pattern, file):
    lineByColumn = {}
    for line, bit in enumerate(file):
        for column, pat in enumerate(file):
            if pattern.search(pat):
                map[line] = column

这将为您提供一个“地图”,其中的行指向具有匹配短语的csv列

© www.soinside.com 2019 - 2024. All rights reserved.