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