python重复指令_python学习- 打印最常用的10条linux命令和查找目录下重复的文件

一、打印最常用的10条linux命令#!/usr/bin/python

#coding=utf-8

import os

from collections import Counter

c = Counter()

with open(os.path.expanduser('~/.bash_history')) as f:

for line in f:

cmd = line.strip().split()

if cmd:

c[cmd[0]]+=1

print c.most_common(10)

效果如下:

二、找到目录下重复的文件#!/usr/bin/python

#coding=utf-8

from __future__ import print_function

import sys

import hashlib

import os

import fnmatch

CHUNK_SIZE=8192

def is_file_match(filename,patterns):

for pattern in patterns:

if fnmatch.fnmatch(filename,pattern):

return True

return False

def find_specific_files(root,patterns=['*'],exclude_dirs=[]):

for root,dirnames,filenames in os.walk(root):

for filename in filenames:

if is_file_match(filename,patterns):

yield os.path.join(root,filename)

for d in exclude_dirs:

if d in dirnames:

dirnames.remove(d)

def get_chunk(filename):

with open(filename) as f:

while True:

chunk=f.read(CHUNK_SIZE)

if not chunk:

break

else:

yield chunk

def get_file_checksum(filename):

h=hashlib.md5()

for chunk in get_chunk(filename):

h.update(chunk)

return h.hexdigest()

def main ():

sys.argv.append("")

directory=sys.argv[1]

if not os.path.isdir(directory):

raise SystemExit ("{0} is not a directory".format(directory))

record={}

for item in find_specific_files(directory):

checksum=get_file_checksum(item)

if checksum in record:

print ('find duplicate files: {0} vs {1}'.format(record[checksum],item))

else:

record[checksum]=item

if __name__ == '__main__':

main()

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值