采用python语言对csv文件写入字符串_使用python在CSV文件中搜索字符串并写入结果...

这段代码演示了如何使用Python的csv和numpy库搜索CSV文件中的特定字符串,并将匹配结果写入新的CSV文件。类search_csv实现了基于numpy和非numpy方法的搜索功能,允许指定返回的列,并提供了写入匹配值到输出文件的接口。
摘要由CSDN通过智能技术生成

#!/usr/bin/python

import csv

import numpy as np

class search_csv(object):

def __init__(self, infile, outfile):

infile = open(infile, 'rb')

read_infile = [i for i in csv.reader(infile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_MINIMAL)]

self.non_numpy_data = read_infile

self.data = np.array(read_infile, dtype=None)

self.outfile = open(outfile, 'wb')

self.writer_ = csv.writer(self.outfile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_MINIMAL)

def write_to(self, matched_values):

self.writer_.writerows(matched_values)

print ' Matched Values Written '

return True

def searcher(self, items, return_cols=[0,2]): ##// items should be passed as list -> ['OneTouch AT', 'LinkRunner AT', 'AirCheck']

find_these = np.array(items, dtype=None)

matching_y = np.in1d(self.data, find_these).reshape(self.data.shape).nonzero()[0]

matching_data = self.data[matching_y][:,return_cols]

self.write_to(matching_data)

self.outfile.close()

return True

def non_numpy_search(self, items, return_cols=[0,2]):

lst = []

for i in self.non_numpy_data:

for ii in items:

if ii in i:

z = []

for idx in return_cols:

z.append(i[idx])

lst.append(z)

break

self.write_to(lst)

return True

### now use the class ###

SEARCHING_FOR = ['OneTouch AT', 'LinkRunner AT', 'AirCheck']

IN_FILE = 'in_file.csv'

OUT_FILE = 'out_file.csv'

non_numpy_search(IN_FILE, OUT_FILE).non_numpy_search(SEARCHING_FOR)

从你的问题的措辞来看,我认为你只是想完成手头的任务,并不真正关心如何完成。因此,复制并粘贴此文件,并将数据文件用作“in_file”值,将要写入的文件名用作“OUT_file”值。完成后,将要搜索的值放入“搜索”列表。

需要注意的事情。。。。

搜索应该是一个列表。

搜索中的值完全匹配,因此“A”与“A”不匹配。如果你想使用正则表达式或更复杂的东西让我知道。

在函数“non-numpy-search”中有一个“return-cols”参数。默认为第一列和第三列。

如果你没有女儿,告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值