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

时间:2018-09-07 20:23:36

标签: python csv expression xls

我正在寻找使用正则表达式在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))

1 个答案:

答案 0 :(得分:0)

对于RegEx,您需要重新编译并使用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列