原因是这样的:
用手机拍了四五百张照片后,用苹果手机连接电脑,想导入到电脑里。
然后发现了这个问题:连接电脑后,在电脑上看到了像U盘盘符的Apple盘符,打开后发现照片不全;如果在手机相册中打开某张没有的照片,再在电脑中打开就能看到这张照片,不知道什么bug,感觉是没加载全的。
为了快速找到到底缺了哪些照片,因为图片文件名都是按序号递增的,就想用到Python直接检查一下好了。毕竟少了好几十张,手动找起来真的麻烦死了。
功能实现: 找出 pic 目录下的图片文件缺少哪几个序号的文件名。
图片是从苹果手机导出的,所以文件名中的序号都是规律的、递增的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ''' @File : test.py @Time : 2023/08/30 @Author : HDUZN @Version : 1.0 @Contact : [email protected] @License : (C)Copyright 2022-2023 @Desc : 把目录中所有的图片文件名由IMG_7255.JPG变成7255后写入到excel表格 ''' import osimport openpyxldef get_file_names (directory ): file_names = [] for filename in os.listdir(directory): file_names.append(filename) return file_names def process_file_names (file_names ): num_list = [] for filename in file_names: name_without_extension = os.path.splitext(filename)[0 ] num = name_without_extension.split('_' )[1 ] num_list.append(int (num)) return num_list def generate_missing_numbers (num_list ): min_num = min (num_list) max_num = max (num_list) all_nums = set (range (min_num, max_num+1 )) missing_nums = sorted (all_nums - set (num_list)) return missing_nums def write_to_excel (num_list, missing_nums, output_file ): workbook = openpyxl.Workbook() sheet = workbook.active for i, num in enumerate (num_list): sheet.cell(row=i+1 , column=1 , value=num) for i, num in enumerate (missing_nums): sheet.cell(row=i+1 , column=2 , value=num) workbook.save(output_file) directory = r'.\pic' output_file = "num_list.xlsx" file_names = get_file_names(directory) num_list = process_file_names(file_names) missing_nums = generate_missing_numbers(num_list) write_to_excel(num_list, missing_nums, output_file)
思路有了,代码就一步一步让聊天机器人写的,看看没问题直接拿过来用就行了。