Python找出一堆按递增的文件中缺少的序号
HDUZN

原因是这样的:

用手机拍了四五百张照片后,用苹果手机连接电脑,想导入到电脑里。

然后发现了这个问题:连接电脑后,在电脑上看到了像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
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@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表格
'''

# here put the import lib
import os
import openpyxl

# 获取目录中所有的图片文件名
def get_file_names(directory):
file_names = []
for filename in os.listdir(directory):
file_names.append(filename)
return file_names

# 处理文件名,由 IMG_7255.JPG 变成 7255
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

# 写入Excel表格
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) # 写入Excel表格

思路有了,代码就一步一步让聊天机器人写的,看看没问题直接拿过来用就行了。

  • 本文标题:Python找出一堆按递增的文件中缺少的序号
  • 本文作者:HDUZN
  • 创建时间:2023-08-30 22:41:34
  • 本文链接:http://hduzn.cn/2023/08/30/Python找出一堆按递增的文件中缺少的序号/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论