Python - Регулярное выражение для совпадения в CSV или XLS и место возврата совпадения - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу использовать регулярное выражение для поиска строкового значения в файле 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 голосов
/ 07 сентября 2018

Для 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 с соответствующей фразой

...