python对比两组字符串差异_python – 比较两个不同文件中的字符串的脚本
我是stackoverflow和脚本的新手.我正在寻找帮助以开始编写脚本,而不一定要找人写.
这就是我所拥有的:
File1.csv – 包含一些信息,我只对MAC地址感兴趣.
File2.csv – 有一些不同的信息,但也包含MAC地址.
我需要一个脚本来解析来自file1.csv的MAC地址,并在file2.csv中显示任何MAC地址时记录报告.
问题:
>关于我使用的语言的任何提示,最好是perl,python或bash?
>任何人都可以建议一些所需逻辑的结构(即使只是在伪代码中)?
更新
使用@Adam Wagner的方法,我非常接近!
import csv
#Need to strip out NUL values from .csv file to make python happy
class FilteredFile(file):
def next(self):
return file.next(self).replace('\x00','').replace('\xff\xfe','')
reader = csv.reader(FilteredFile('wifi_clients.csv', 'rb'), delimiter=',', quotechar='|')
s1 = set(rec[0] for rec in reader)
inventory = csv.reader(FilteredFile('inventory.csv','rb'),delimiter=',')
s2 = set(rec[6] for rec in inventory)
shared_items = s1.intersection(s2)
print shared_items
这总是输出:(即使我医生.csv文件具有匹配的MAC地址)
set([])
csv文件的内容
wifi_clients.csv
macNames, First time seen, Last time seen,Power, # packets, BSSID, Probed ESSIDs
inventory.csv
Name,Manufacturer,Device Type,Model,Serial Number,IP Address,MAC Address,…
解决方法:
这是我采取的方法:
>迭代每个csv文件(python有一个方便的csv模块来完成此操作),捕获mac-address并将其放在一个集合中(每个文件一个).再一次,python有一个很棒的内置集类型. Here’s a good example of using the csv module和当然,the docs.
>接下来,您可以获得set1(file1)和set2(file2)的交集.这将显示存在于第一个和第二个文件中的mac-addresses.
示例(在python中):
s1 = set([1,2,3]) # You can add things incrementally with "s1.add(value)"
s2 = set([2,3,4])
shared_items = s1.intersection(s2)
print shared_items
哪个输出:
set([2, 3])
记录这些共享项目可以通过打印(然后将输出重定向到文件),使用日志记录模块,直接保存到文件中完成.
我不确定你正在寻找的答案有多深入,但这应该让你开始.
更新:CSV /设置用法示例
假设你有一个文件“foo.csv”,它看起来像这样:
bob,123,127.0.0.1,mac-address-1
fred,124,127.0.0.1,mac-address-2
构建集合的最简单方法是这样的:
import csv
set1 = set()
for record in csv.reader(open('foo.csv', 'rb')):
user, machine_id, ip_address, mac_address = record
set1.add(mac_address)
# or simply "set1.add(record[3])", if you don't need the other fields.
显然,对于每个文件,你需要这样的东西,所以你可能想把它放在一个函数中,以使生活更轻松.
最后,如果你想要更简洁但更酷的python方式,你也可以像这样构建集合:
csvfile = csv.reader(open('foo.csv', 'rb'))
set1 = set(rec[3] for rec in csvfile) # Assuming mac-address is the 4th column.
标签:python,bash,perl
来源: https://codeday.me/bug/20190726/1540805.html
python对比两组字符串差异_python – 比较两个不同文件中的字符串的脚本相关推荐
- python中csv文件通过什么表示字符_python – 如果行包含CSV文件中的字符串,则删除该行...
我在删除包含一列中的字符串的文本文件中的行时遇到问题.到目前为止,我的代码无法删除该行,但它能够读取文本文件并将其作为CSV文件保存到单独的列中.但这些行不会被删除. 这就是该列中的值如下所示: Sh ...
- python批量读取csv并写入_Python如何批量读取CSV文件中指定信息并写入doc文件命名中?...
提供思路自己完成吧 1.用 os.walk 加 if 判断将所有的csv 文件名读到list中 用glob 也可以 import glob for x in glob.glob('*.csv'): p ...
- excel 两组数据交点_Python 自动化测试(四):数据驱动
本周测试公开课<Pytest 自动化测试最佳实践:实用特性与进阶技巧>! 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量.这种测试,在功能测 ...
- 两组回归系数差异检验_【stata系列】——组间系数差异检验
01 组间系数差异检验是什么? 组间系数差异检验可以用于横截面中产权性质分析.高低分组分析等,在DID模型里也可用于检验post=0(或post=1)时组间系数差异,需要说明的是,DID模型里如果只 ...
- python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法
python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...
- python查找文件中某些字符串_python - Python无法从2个文件的字符串搜索中提取数据吗? - 堆栈内存溢出...
我使用此代码在2个文件中搜索和比较字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2. ...
- python读取一行的函数_Python linecache.getline()读取文件中特定一行的脚本
Python linecache.getline()读取文件中特定一行的脚本 比如: Code highlighting produced by Actipro CodeHighlighter (fr ...
- 成轴对称的两组图片能被分成两类吗?
将吸引子,排斥子,鞍点和反鞍点旋转90度形成轴对称,并将成轴对称的两组图片进行分类. r1 r2 <1 <1 吸引子 c >1 >1 排斥子 p >1 <1 ...
- 用python中re.sub()替换文件中指定字符串
用python中re.sub()替换文件中指定字符串 1.正则表达式re.sub()的用法 sub(pattern,repl,string,count=0,flag=0) 1)pattern正则表达式 ...
最新文章
- [源码]python Scapy Ftp密码嗅探
- 树莓派 st-link master使用ST-LINK V2下载STM32程序 支持F0 F1 F2 等
- 使用二维码识别技术的好处_人脸识别技术什么场景都能使用吗?
- 深圳多管齐下破解“融资难”
- 浏览器linux安装失败,LINUX 上安装WAS 提示没有浏览器问题
- 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
- 【SQLServer】
- WPF 控件 深度克隆
- 紫外分光光度法测量蛋白质的含量
- 敏捷开发中的文档怎么写
- TiDB 压力测试报告
- man fgetc fgets getc getchar ungetc
- Android Studio第11课网络编程3(学习打卡Day17)
- 自己计算机设置盘密码怎么操作,怎么给电脑盘设置密码
- Linux服务器搭建----Web服务器(apache)
- java当单据变化触发,UAP开发(NC63)遇到的错误记录
- getattr()函数详解
- 中国托盘拆卸工行业市场供需与战略研究报告
- 吃货最爱美食,四种美食短视频类型分享,出奇制胜才能吸粉
- 关于intern方法的理解
热门文章
- 【Computer Organization笔记12】流水线技术概述
- php 并发控制中的独占锁
- Android Studio下导出jar包和aar包
- 视频编解码器,bbv 缓冲区溢出和下溢
- [Java 泥水匠] Java Components 之一:Java String (肯定有你不懂的)
- mysql表 spid program_oracle 解锁某张表 和编译存储过程卡死问题处理
- springboot整合websocket进行消息推送
- 升级dedecms5.5后,出现提示保存目录数据时失败,请检查你的输入资料是否存在问题...
- ios xib 初始化高度_iOS图片伸缩技巧
- etcd-java使用