亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

citespace數(shù)據(jù)處理:用python對Ref文檔進行去重方式

 更新時間:2022年11月18日 10:22:03   作者:Mr.Bean-Pig  
這篇文章主要介紹了citespace數(shù)據(jù)處理:用python對Ref文檔進行去重方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

python對Ref文檔進行去重

首先將txt文檔提取到Excel表格中篩選出重復項,并且整理到txt中:

需要去重的目標txt也準備好:

接下來運行代碼,注意代碼中的路徑需要自己按實際情況修改:

#coding:utf-8
#__author__ ='pig'

# 實現(xiàn)去重功能

import re
# 需要去重的標題列表
title_need_delete = []

f0 = open('D:\Desktop\數(shù)據(jù)\\need_delete.txt',encoding='utf-8')
for line in f0.readlines():
    title_need_delete.append(line)
#print(title_need_delete)
# 一鍵多值字典0
dict={}

# 標題列表
title_list = []

f1=open('D:\Desktop\數(shù)據(jù)\\sum.txt',encoding='utf-8')
data=f1.readlines()
# print data1
f1.close()
num = 0
# 第一次遍歷:構建字典,能看出每篇文章出現(xiàn)的次數(shù)
for index,line in enumerate(data):
    if line[0:2] == 'T1':
        num+=1
        title = line[3:]
        if title not in title_list:
            # 向字典中添加新key
            dict.setdefault(title,[]).append(1)
            title_list.append(title)

        else:
            # 修改該文章出現(xiàn)的次數(shù)
            dict[title][0] += 1

#print(dict)
print("原數(shù)據(jù)量:"+str(num))

f2 = open('after_delete.txt', 'w', encoding='utf-8')

delete_num = 0
after_num = 0
# 第二次遍歷:將文本寫入新文件(每篇文章數(shù)據(jù)整段寫入),對于每篇文章,若出現(xiàn)在黑名單中,則需要跳過,直到最后一次出現(xiàn)才寫入
for index,line in enumerate(data):
    # 每篇文章先判定
    if line[0:2] == 'RT':
        # 定位至標題行
        index_1 = index
        while(data[index_1][0:2] != 'T1'):
            index_1 += 1
        # 提取標題
        title = data[index_1][3:]
        # 如果在黑名單里且不是最后一次出現(xiàn),則跳過此文章,并將字典中次數(shù)-1
        if title in title_need_delete and dict[title][0] > 1:
            # print('跳過:'+ title)
            dict[title][0] -= 1
            delete_num += 1
            # 跳過
            continue
        else :
            # 不在黑名單中則正常寫
            f2.writelines(data[index])
            after_num += 1
            index += 1
            while(data[index][0:2] != 'RT'):
                f2.writelines(data[index])
                index += 1
                if index == len(data):
                    break
print("去重完成!")
print("刪除重復數(shù)據(jù):" + str(delete_num))
print("剩余數(shù)據(jù):" + str(after_num))
f2.close()

運行結果:

Python文件自動去重

平日里一來無聊,二來手巧,果然下載了好多資料,搞得我小小的硬盤(已經(jīng)擴到6T了)捉襟見肘,

有次無意間,發(fā)現(xiàn)有兩個居然長得一毛一樣,在房子這么小的情況下,我怎能忍兩個一毛一樣的東西躺在我的硬盤里,果斷搞掉一個,整理一下,本來想文件名一樣的就保留一份,但問題出現(xiàn)了,居然有名字一樣,內容卻完全不一樣的文件,想我背朝黃土面朝天吹著空調吃著西瓜下載下來的東西,刪除是不可能的,這輩子都是不可能刪除的。可是我也又不能把這數(shù)以億計的文件挨個打開看看里面一樣不一樣吧,這個工程我大概夠我做了好久好久了,有沒有辦法搞個軟件幫幫我呢,答案是肯定的,要不然我也不用在這里寫這個博客了(應該是苦逼的一個一個打開比較吧),說正題,Python提供了一個比較文件內容的東西,那就是哈希算法

MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,于1992年公開,用以取代MD4算法。

說了這么長,總結出來就一句,這玩意就是文件的指紋,幾乎每個文件是唯一的(碰到重復的,恭喜你,可以去買彩票了),那我們就把這個指紋拿出來,一個一個比對,肯定不能會有漏網(wǎng)的文件,既不會錯殺三千,也不使一文件漏網(wǎng),原理上通了,那么我們就要去搞個代碼來幫我完成這個工作,作為最好用的語言,Python就這樣被我翻了牌子

代碼如下

# -*- coding:utf-8 -*-
 
import os
import hashlib
import time
import sys
#搞到文件的MD5
def get_ms5(filename):
    m = hashlib.md5()
    mfile = open(filename , "rb")
    m.update(mfile.read())
    mfile.close()
    md5_value = m.hexdigest()
    return md5_value
#搞到文件的列表
def get_urllist():
    base = ("D:\\lwj\\spider\\pic\\")#這里就是你要清繳的文件們了
    list = os.listdir(base)
    urllist = []
    for i in list:
        url = base + i
        urllist.append(url)
 
    return urllist
#主函數(shù)
if __name__ == '__main__':
    md5list = []
    urllist = get_urllist()
    print("test1")
    for a in urllist:
        md5 = get_ms5(a)
        if(md5 in md5list):
            os.remove(a)
            print("重復:%s" % a)
        else:
            md5list.append(md5)
            print("一共%s張照片" % len(md5list))

效果

這戰(zhàn)斗力杠杠的,啥叫科技改變生活,此之謂也

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python3多線程知識點總結

    python3多線程知識點總結

    在本篇文章里小編給各位分享的是關于python3多線程的相關知識點內容,以后需要的朋友們可以參考下。
    2019-09-09
  • 詳解python中__name__的意義以及作用

    詳解python中__name__的意義以及作用

    這篇文章主要介紹了詳解python中__name__的意義以及作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • numpy中數(shù)組拼接、數(shù)組合并方法總結(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)

    numpy中數(shù)組拼接、數(shù)組合并方法總結(append(),?concatenate,?hstack,?vstack

    numpy庫是一個高效處理多維數(shù)組的工具,可以在進行邊寫的數(shù)組計算上進行一系列的操作,下面這篇文章主要給大家介紹了關于numpy中數(shù)組拼接、數(shù)組合并方法(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)的相關資料,需要的朋友可以參考下
    2022-08-08
  • 如何用Python數(shù)據(jù)可視化來分析用戶留存率

    如何用Python數(shù)據(jù)可視化來分析用戶留存率

    今天和大家來分享一些數(shù)據(jù)可視化方向的干貨,我們來嘗試用Python來繪制一下“漏斗圖”,感興趣的小伙伴和小編一起進入課題吧,但愿大家會有所收獲
    2021-09-09
  • python里的條件語句和循環(huán)語句你了解多少

    python里的條件語句和循環(huán)語句你了解多少

    這篇文章主要為大家詳細介紹了python的條件語句和循環(huán)語句,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別

    Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別

    本文主要介紹了Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • scrapy爬蟲遇到js動態(tài)渲染問題

    scrapy爬蟲遇到js動態(tài)渲染問題

    本文主要介紹了scrapy爬蟲遇到js動態(tài)渲染問題,通過js渲染出來的動態(tài)網(wǎng)頁的內容與網(wǎng)頁文件內容是不一樣的,本文就來解決一下這些問題,感興趣的可以了解一下
    2022-05-05
  • Python使用騰訊云API實現(xiàn)短信驗證碼功能

    Python使用騰訊云API實現(xiàn)短信驗證碼功能

    使用Python與騰訊云接口對接,實現(xiàn)短信驗證碼功能變得非常簡單,只需要幾行代碼就能夠輕松實現(xiàn)短信的發(fā)送,無須關心復雜的短信協(xié)議和底層實現(xiàn),讀者可以根據(jù)自己的實際需求,靈活使用騰訊云短信SDK提供的API來實現(xiàn)更豐富的短信功能
    2024-01-01
  • Python讀取DataFrame的某行或某列的方法實現(xiàn)

    Python讀取DataFrame的某行或某列的方法實現(xiàn)

    Dataframe是Python中一種重要的數(shù)據(jù)處理工具,它能夠以表格形式存儲并處理數(shù)據(jù),本文主要介紹了Python讀取DataFrame的某行或某列的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • django主動拋出403異常的方法詳解

    django主動拋出403異常的方法詳解

    這篇文章主要給大家介紹了關于django主動拋出403異常的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01

最新評論