Python3,自动抄袭检查神器,确实奈斯。

举报
Carl_奕然 发表于 2023/08/28 17:45:45 2023/08/28
【摘要】 difflib,不得不掌握的一个库。

1、 自动抄袭检查器


1.1 difflib 介绍


关于difflib,可能大家并不陌生, 这里,针对difflib小鱼也简单说几句,如下:

Python的difflib库提供了一组方便的函数和类,用于处理序列数据类型,如列表、字符串等。
它提供了一些有用的功能,如逐行比较两个文本文件、计算两个列表之间的差异、合并两个列表等。
此外,它还提供了一些有用的可视化功能,如绘制序列数据的折线图和直方图等。

1.2 用法

这里,我也列举 diflib的用法,包含如下:

  1. 检测两个序列之间的差异
  2. 生成逐行差异列表
  3. 将一个序列与一个基准序列逐一比较
  4. 查找匹配序列的位置
  5. 生成一个 n-gram 的列表

简单示例

import difflib
'''
实现功能:
      生成逐行差异列表
'''

text1 = 'hello world'
text2 = 'hallo wold'

d = difflib.Differ()
diff = list(d.compare(text1.splitlines(), text2.splitlines()))

for line in diff:
    if line.startswith('+'):
        print(f'Added: {line[2:]}')
    elif line.startswith('-'):
        print(f'Removed: {line[2:]}')

1.3 实例

代码示例

  • 使用difflib进行对比,从而检查出是否存在一样的内容

# -*- coding:utf-8 -*-
# @Time   : 2023-08-10
# @Author : Carl_DJ
'''
实现功能:
    使用difflib进行对比,从而检查出是否存在一样的内容。
'''

from difflib import SequenceMatcher
#检测f1,f2的内容
def plagiarism_checker(f1,f2):
    with open(f1,errors="ignore") as file1,open(f2,errors="ignore") as file2:
        f1_data=file1.read()
        f2_data=file2.read()
        res=SequenceMatcher(None, f1_data, f2_data).ratio()
        
print(f"这两篇文章相似度 {res*100} % ")

f1=input("请输入需要检测的文件地址: ")
f2=input("请输入源文件地址: ")
plagiarism_checker(f1, f2)

2、总结


看到这里, 今天的分享差不多就到这里了。
其实,在平时的工作生活中, 两篇文字内容对比,很常用。

所以,掌握这个种小技巧,让我们的幸福感提升200%。

我是小鱼:

  • CSDN 博客专家;
  • 阿里云 专家博主;
  • 51CTO博客专家;
  • 51认证讲师等;
  • 认证金牌面试官;
  • 职场面试及培训规划师;
  • 多个国内主流技术社区的认证专家博主;
  • 多款主流产品(阿里云等)测评一、二等奖获得者;

关注我,带你学习更多更专业更前言的Python技术。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。