我希望使用正则表达式在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))
对于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列