人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

python編程實現(xiàn)清理微信重復緩存文件

發(fā)布日期:2021-12-16 18:14 | 文章來源:源碼之家

文 |某某白米飯

來源:Python 技術「ID: pythonall」

微信和 QQ 都有一個存放緩存文件的文件夾,微信在設置 --> 文件管理,QQ 在系統(tǒng)設置 --> 基本設置 --> 文件管理 --> 打卡個人文件中找到它,平時大家對這個文件夾關注度不高,這個文件夾慢慢的,偷偷的就占用了好幾十個 G 的磁盤空間。下面就用 Python 寫個刪除重復文件的腳本清理這些空間。

glob 模塊

glob 模塊非常簡單,就是用來查找文件和文件夾。查找文件只用到三個匹配符:"*", "?", "[]"。

通配符 功能

*:匹配0或多個字符

**:匹配所有文件,目錄,子目錄和子目錄里面的文件

?:匹配一個字符,這里與正則表達式? (正則?匹配前面表達式0次或者1次)

[]:匹配指定范圍內的字符,如: [1-9]匹配1至9內的字符

[!]:匹配不在指定范圍內的字符

glob方法

這個方法返回所有匹配的文件路徑列表

# 當前路徑下所有 py 文件
for fname in glob.glob("**/*.py",recursive=True):
 print(fname)
 
# 當前路徑文件 py 下 py 文件
for fname in glob.glob("py/*.py"):
 print(fname)
 
# 單字通配符 ?,當前路徑文件下以 Tem 開頭后有一個字符文件夾
for fname in glob.glob("Tem?"):
 print(fname)
 
# 范圍通配符[],當前路徑文件下以 Tem 開頭后一個數字符的 py 文件
for fname in glob.glob("Tem[0-9].py"):
 print(fname)
 
# 范圍通配符[!],當前路徑文件下以 Tem 開頭后一個非數字符的 py 文件
for fname in glob.glob("Tem[!0-9].py"):
 print(fname)
 
windowns下
file = glob.glob(r'D:\logs\*\*')

zlib.crc32

CRC32 算法概述 CRC 全稱 Cyclic Redundancy Check,又叫循環(huán)冗余校驗。和 md5 碼一樣都是 hash 的。當兩個文件內容的 CRC32 相同的時候,這個文件也就是相同的。反之,兩個文件就是不同的文件。

def crc32(file_path):
 with open(file_path, 'rb') as fh:
  hash = 0
  while True:
s = fh.read(65536)
if not s:
 break
hash = zlib.crc32(s, hash)
  return "%08X" % (hash & 0xFFFFFFFF)

去重復

看到這里,想必都明白如何去重復文件了:1. 用 glob.glob 掃描所有文件,2. 把文件的 crc32 值放入字典中,3. 找到字典中已經存在的 crc32 值的key,刪除當前文件。

import os
import zlib
import glob
def scanning_floder(glob_path):
 crc32Dict = {}
 for fname in glob.glob(glob_path, recursive=True):
  if os.path.isfile(fname):
crc = crc32(fname)
if crc in crc32Dict:
 print('已經存在文件:' + crc32Dict.get(crc))
 print('重復文件:' + fname)
 print('刪除文件:' + fname)
 os.remove(fname)
 print('')
else:
 crc32Dict[crc] = fname
def crc32(file_path):
 with open(file_path, 'rb') as f:
  hash = 0
  while True:
s = f.read(1024)
if not s:
 break
hash = zlib.crc32(s, hash)
  return "%08X" % (hash & 0xFFFFFFFF)
 
scanning_floder(r"C:\Users\xxxx\Documents\WeChat Files\xxxx\FileStorage\**\*")

總結

本篇介紹了 glob 模塊的用法和 crc32 值的計算,大家學廢了嗎?

更多關于python清理重復緩存文件的資料請關注本站其它相關文章!

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部