首页 > V2EX > V2EX-今天发生了件挫败感很强的事
2022
09-24

V2EX-今天发生了件挫败感很强的事

heavymetals:

因为 MacOs 端微信保存文件的路径是这种形式

/Message/MessageTemp/一堆随机字符 /File(OpenData)/2022-09

相对于 Win 端的File/2022-09 太过复杂,而且每个联系人的随机字符串都不同,查找起来不太方便,所以今天(2022 年 9 月 23 日)中午的时候我打算写一个能定期将微信文件备份到特定文件夹,并按月份归档的 python 小程序。

刚开始我觉着很简单,不就是读取创建时间然后复制粘贴吗,然后我就开始了愉快地面向谷歌编程。

写着写着我开始不断想着添加新功能,微信每收发一个文件不管文件是否一样,都会在本地保存一份 –> 所以想着根据文件名去重 –> 又想到可能会有不同内容的同名文件 –> 不如根据 MD5+文件名去重 — > 全查 MD5 太慢 –> 先看名字再检查 MD5

然后我自己就乱了,前面写了一大堆 if else break ,也没怎么写注释,出错以后往上查自己也看不懂了……

当时真是气死我了

大概就是这样:

for path, dir_list, source_file_list in g:
    for source_file_list in source_file_list:
        riqi = get_change_time(str(path) + '/' + str(source_file_list))
        target_path = '' + riqi
        target_path_file_name = return_target_file_name(target_path)
        for i in target_path_file_name:
            if i == source_file_list:
                md5_target = return_md5(target_path + '/' + i)
                md5_source = return_md5(path + '/' + source_file_list)
                if md5_target==md5_source:
                    status=2
                    break
                else:
                    print(i)
                    target_path_file_name.remove(i)
                    for uu in target_path_file_name:
                        md5_target = return_md5(target_path + '/' + uu)
                        md5_source = return_md5(path + '/' + source_file_list)
                        if uu == target_path_file_name:
                            status=1
                            break
                        else:
                            status=2
                    break

            else:
                status=3

现在我也没理清楚计算 md5 那段是怎么个逻辑

还好经过我的不懈努力,程序能正常工作了,上面想的几个功能也都实现了。从下午两点一直搞到晚上八点,晚饭也烦的没有吃,一个下午全耗在这了,啥正事也没干,就为了这个小功能(责任全在微信)。为什么说是挫败感呢?因为我感觉这个真是个挺简单的程序,而且晚上写完回看确实感觉很简单,但是耗费了我这么长的时间,而且感觉自己好菜….我不是科班出身,写代码全是个人爱好,我一直认为自己有点写代码的天赋,现在看来我应该去重新系统的学习一下如何写代码。

晚上睡不着,写出来感觉舒服多了,晚安兄弟们

from V2EX-最新主题 https://ift.tt/SOIvriD

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复