Python使用正则表达式搜索CSV并将结果导出到不同的CSV
我正在使用Python3加载regex和csv模块,并尝试创建一个脚本,用正则表达式从csv中提取字符串,然后将结果导出到另一个csv。我的想法是我有一个csv,有人给了我,它有一个单列,出于某种原因,有一个单元格,里面有很多信息。包括引号、换行符和一堆其他垃圾。我只需要每个细胞的一小部分 我的脚本能够打印结果,但由于某些原因,以下脚本在尝试将以下内容写入csv时返回错误Python使用正则表达式搜索CSV并将结果导出到不同的CSV,python,regex,python-3.x,csv,Python,Regex,Python 3.x,Csv,我正在使用Python3加载regex和csv模块,并尝试创建一个脚本,用正则表达式从csv中提取字符串,然后将结果导出到另一个csv。我的想法是我有一个csv,有人给了我,它有一个单列,出于某种原因,有一个单元格,里面有很多信息。包括引号、换行符和一堆其他垃圾。我只需要每个细胞的一小部分 我的脚本能够打印结果,但由于某些原因,以下脚本在尝试将以下内容写入csv时返回错误“AttributeError:'re.Match'对象没有属性'write'” 我想从csv的每个单元格中提取一个字符串,然
“AttributeError:'re.Match'对象没有属性'write'”
我想从csv的每个单元格中提取一个字符串,然后将其导出到另一个csv。
import csv
import re
with open('Failed.csv',mode='r') as csv_file, open('result.csv', mode='wb') as csv_result:
csv_reader = csv.reader(csv_file)
writer=csv.writer(csv_result, delimiter=',')
for row in csv_reader:
pattern = 'Computer Configuration\\.*\n*.*'
currentrow = row[0]
found = re.search(pattern, currentrow)
if found:
print(found)
writer.writerow(found)
方法
re.search
返回一个不能直接使用的Match
对象。如果要从行中检索值,可以使用组
value = "foo123"
pattern = "foo(.*)"
match = re.search(pattern, value)
print(match, type(match)) # <re.Match object; span=(0, 3), match='foo'> <class 're.Match'>
print(match.groups()) # ('123',)
print(match.group(1)) # 123
value=“foo123”
pattern=“foo(.*)”
匹配=重新搜索(模式、值)
打印(匹配,键入(匹配))#
打印(match.groups())#('123',)
打印(匹配组(1))#123
奇怪的部分是当我打印时(match.groups()),它只返回()@Zygodactyl您需要在模式中使用括号来创建匹配的组,您可以阅读有关组的内容,您可以轻松找到详细信息;)是的,就是这样,我错过了愚蠢的模式中的括号。还必须将第二个文件的open从wb更改为w