我是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 – 比较两个不同文件中的字符串的脚本相关推荐

  1. python中csv文件通过什么表示字符_python – 如果行包含CSV文件中的字符串,则删除该行...

    我在删除包含一列中的字符串的文本文件中的行时遇到问题.到目前为止,我的代码无法删除该行,但它能够读取文本文件并将其作为CSV文件保存到单独的列中.但这些行不会被删除. 这就是该列中的值如下所示: Sh ...

  2. python批量读取csv并写入_Python如何批量读取CSV文件中指定信息并写入doc文件命名中?...

    提供思路自己完成吧 1.用 os.walk 加 if 判断将所有的csv 文件名读到list中 用glob 也可以 import glob for x in glob.glob('*.csv'): p ...

  3. excel 两组数据交点_Python 自动化测试(四):数据驱动

    本周测试公开课<Pytest 自动化测试最佳实践:实用特性与进阶技巧>! 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量.这种测试,在功能测 ...

  4. 两组回归系数差异检验_【stata系列】——组间系数差异检验

    01  组间系数差异检验是什么? 组间系数差异检验可以用于横截面中产权性质分析.高低分组分析等,在DID模型里也可用于检验post=0(或post=1)时组间系数差异,需要说明的是,DID模型里如果只 ...

  5. python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法

    python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...

  6. python查找文件中某些字符串_python - Python无法从2个文件的字符串搜索中提取数据吗? - 堆栈内存溢出...

    我使用此代码在2个文件中搜索和比较字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2. ...

  7. python读取一行的函数_Python linecache.getline()读取文件中特定一行的脚本

    Python linecache.getline()读取文件中特定一行的脚本 比如: Code highlighting produced by Actipro CodeHighlighter (fr ...

  8. 成轴对称的两组图片能被分成两类吗?

    将吸引子,排斥子,鞍点和反鞍点旋转90度形成轴对称,并将成轴对称的两组图片进行分类. r1 r2     <1 <1 吸引子 c >1 >1 排斥子 p >1 <1 ...

  9. 用python中re.sub()替换文件中指定字符串

    用python中re.sub()替换文件中指定字符串 1.正则表达式re.sub()的用法 sub(pattern,repl,string,count=0,flag=0) 1)pattern正则表达式 ...

最新文章

  1. [源码]python Scapy Ftp密码嗅探
  2. 树莓派 st-link master使用ST-LINK V2下载STM32程序 支持F0 F1 F2 等
  3. 使用二维码识别技术的好处_人脸识别技术什么场景都能使用吗?
  4. 深圳多管齐下破解“融资难”
  5. 浏览器linux安装失败,LINUX 上安装WAS 提示没有浏览器问题
  6. 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
  7. 【SQLServer】
  8. WPF 控件 深度克隆
  9. 紫外分光光度法测量蛋白质的含量
  10. 敏捷开发中的文档怎么写
  11. TiDB 压力测试报告
  12. man fgetc fgets getc getchar ungetc
  13. Android Studio第11课网络编程3(学习打卡Day17)
  14. 自己计算机设置盘密码怎么操作,怎么给电脑盘设置密码
  15. Linux服务器搭建----Web服务器(apache)
  16. java当单据变化触发,UAP开发(NC63)遇到的错误记录
  17. getattr()函数详解
  18. 中国托盘拆卸工行业市场供需与战略研究报告
  19. 吃货最爱美食,四种美食短视频类型分享,出奇制胜才能吸粉
  20. 关于intern方法的理解

热门文章

  1. 【Computer Organization笔记12】流水线技术概述
  2. php 并发控制中的独占锁
  3. Android Studio下导出jar包和aar包
  4. 视频编解码器,bbv 缓冲区溢出和下溢
  5. [Java 泥水匠] Java Components 之一:Java String (肯定有你不懂的)
  6. mysql表 spid program_oracle 解锁某张表 和编译存储过程卡死问题处理
  7. springboot整合websocket进行消息推送
  8. 升级dedecms5.5后,出现提示保存目录数据时失败,请检查你的输入资料是否存在问题...
  9. ios xib 初始化高度_iOS图片伸缩技巧
  10. etcd-java使用