首页 >>  正文

python中f+是什么意思

来源:baiyundou.net   日期:2024-08-22

作者:大橡皮啊

最终效果:

       删除重复文件,并保留创建日期更为久远的文件

      上篇文章写了,利用群晖的存储空间分析器结合python来查找重复文件.经人提醒,发现完全不需要用到存储分析器.因为那个文章编辑次数到限制了.无法编辑了.只能重新开贴.   有一点小小的设置.看下图

      file_type是一个文件类型的列表.在里面添加你想要删除的文件类型即可.每个文件类型之间用逗号隔开.

import os

import hashlib

# 只删除以下列表中的重复文件类型.如果想删除其他类型的文件,自己添加一下就行了

file_type = ['.jpg', '.jpeg', '.png', '.gif', '.psd', '.bmp', '.webp', '.mp4', '.mkv', '.avi', '.mov', 'mpeg', 'mpg',

             '.rar', '.zip']

check_files = []

def remove_reapt_files():

    for root, dirs, files in os.walk(r'/volume1/homes/xxxxxx/Drive/Moments/'):

        for name in files:

            # print(name)

            p_type = os.path.splitext(os.path.join(root, name))[1]

            if p_type in file_type:

                check_files.append(os.path.join(root, name))

        for name in dirs:

            p_type = os.path.splitext(os.path.join(root, name))[1]

            if p_type in file_type:

                check_files.append(os.path.join(root, name))

    files_dict = {}

    r_index = 0

    print('Fiels Num:%s' % len(check_files))

    for value in check_files:

        md5_hash = hashlib.md5()

        try:

            with open(value, "rb+") as f:

                for byte_block in iter(lambda: f.read(4096), b""):

                    md5_hash.update(byte_block)

                file_md5 = md5_hash.hexdigest()

                print('Check file MD5:%s' % value)

            if files_dict.get(file_md5) is None:

                files_dict[file_md5] = value

            else:

                d_path = files_dict[file_md5]

                d_path_stats = os.stat(d_path)

                file_stats = os.stat(value)

                d_time = d_path_stats.st_ctime

                f_time = file_stats.st_ctime

                if d_time > f_time:

                    os.remove(d_path)

                    files_dict[file_md5] = value

                    print('Delete File:', d_path)

                    r_index += 1

                else:

                    os.remove(value)

                    print('Delete File:', value)

                    r_index += 1

        except Exception as e:

            pass

            #print('File does not exist or has been deleted')

    print('File Count:%s, Repeat Files Num:%s. All deleted!' %( len(check_files),str(r_index)))

if __name__ == '__main__':

    remove_reapt_files()

文件下载之后,要添加到计划任务中.

先打开群晖上的File Station 新建一个文件夹.我这边取名叫 python_shell.然后把脚本文件复制到文件夹下.

然后打开计划任务,添加一个计划任务.执行频率.看个人喜好.运行命令就写python3 加上脚本的路径

这样就大功告成了.看看效果吧.

@eadir文件夹是群晖全局索引文件.所以删除的文件要比实际的重复要多.因为索引也删除了.

","force_purephv":"0","gnid":"95c9e7329dc8eeac5","img_data":[{"flag":2,"img":[{"desc":"","height":"174","title":"","url":"https://p0.ssl.img.360kuai.com/t01d8789567fc7d07d3.jpg","width":"600"},{"desc":"","height":"259","title":"","url":"https://p0.ssl.img.360kuai.com/t01bcbb7a603d379e77.jpg","width":"600"},{"desc":"","height":"532","title":"","url":"https://p0.ssl.img.360kuai.com/t01bbe930fc857d6289.jpg","width":"533"},{"desc":"","height":"189","title":"","url":"https://p0.ssl.img.360kuai.com/t01cf226c23320badd5.jpg","width":"600"},{"desc":"","height":"164","title":"","url":"https://p0.ssl.img.360kuai.com/t01f0316e95e5b219f3.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1668674208000,"pure":"","rawurl":"http://zm.news.so.com/5b931f4f25d4540121746449657c5822","redirect":0,"rptid":"ff74231c4c8790e1","s":"t","src":"什么值得买","tag":[],"title":"利用python删除群晖中的重复文件(2)

令软乖4515python中+加号什么意思 -
寇蒲裕18728691475 ______ 字符串中加号把两边的字符连接起来.

令软乖4515python中的'%c'%是什么意思? -
寇蒲裕18728691475 ______ 符 号 描述 %c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整型 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 如:%.2f %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g %f和%e的简写 %G %f 和 %E 的简写 %p 用十六进制数格式化变量的地址 参考资料:Python从入门到精通

令软乖4515求在python里 \f, \N{name}, \uxxxx, \Uxxxxxxxx, \v, \ooo, \xhh 都是怎么用的呢? -
寇蒲裕18728691475 ______ 不太明白你想问什么,如果你问的是转义符的话一般这些都用在字符串中.

令软乖4515在python中+= 什么意思 -
寇蒲裕18728691475 ______ 打个比方: i += 1就相当于i = i+1

令软乖4515Python 中的for line in f是什么意思
寇蒲裕18728691475 ______ 代码的最后一行:f.close() 和 for 对齐.不然就变成在for循环里面执行文件关闭操作了,第一次循环过后,文件就已经关闭,下一次循环,肯定就会报错

令软乖4515初学python,很想知道python中哪些常用的快捷键.就是注释的时候有... -
寇蒲裕18728691475 ______ Python还有快捷键?你是问IDE的快捷键吧? 用井号作为注释一行 #此处为注释 一般用"""(三个英文引号)也可以注释多行,不过一般用来表示函数文档 """ 此处是注释 此函数功能为.... ""

令软乖4515python中, 函数 f(w) 与 w.f() 之间有什么差异? -
寇蒲裕18728691475 ______ 这个是函数和方法的差异?以下个人理解:函数和方法都是处理一定特定逻辑的程序块 函数可以直接调用,而方法是需要有对象存在.比如len()函数、List的append()方法.

令软乖4515python 一个字符串中有什么字符 -
寇蒲裕18728691475 ______ >>> s='abcddefg' >>> s[0] 'a' >>> s[1] 'b' >>> s.index('e') 看明白了吗!

令软乖4515python中fiag - con是什么意思!! -
寇蒲裕18728691475 ______ 一般就是标记的意思 比如:flag = False while True:#各种处理代码#特定情况下 flag = True#如果需要就返回 return flag

令软乖4515python 中函数名之间加点是什么意思 -
寇蒲裕18728691475 ______ [[模块.][对象.]]函数名()

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024