gpt4 book ai didi

python - 比较 Python 中的递增文件名并检查缺少哪一个

转载 作者:行者123 更新时间:2023-12-01 06:30:48 26 4
gpt4 key购买 nike

我正在遍历一个包含文件的文件夹,并将每个文件的路径添加到列表中。该文件夹包含文件名递增的文件,例如00-0.txt、00-1.txt、00-2.txt、01-0.txt、01-1.txt、01-2.txt 等等。

文件的数量不固定并且总是变化的。此外,有时文件可能会丢失。这意味着我有时会得到这个列表:00-0.txt、00-1.txt、01-0.txt、01-1.txt、01-2.txt。

但是,在我的最终列表中,我应该始终有 9 组(因此 00-0、00-1、00-2 等等,直到 00-8 为一组)。如果文件丢失,那么我将在新列表中附加“丢失”字符串文本。

我想做的是:

  • 获取文件名的最后一个字符(例如“3”)
  • 检查它的值是否与之前的索引 + 1 相同。
  • 如果不是,则附加“缺少”字符串
  • 如果相同,则附加文件名

伪代码中(请不要介意语法错误,我主要是在寻找高级建议),它会是这样的:

empty_list = []
list_with_paths = glob.glob("/path/to/dir*.txt")

for index, item in enumerate(list_with_paths):
basename = os.path.basename(item)
filename = os.path.splitext(basename)[0]

if index == 0 and int(filename[-1]) != 0:
empty_list.append('is missing')
elif filename[-1] != empty_list[index - 1] + 1:
empty_list.append('is missing')
else:
empty_list.append(filename)

我确信有一个更优化的解决方案来实现这一目标。

最佳答案

一旦获得了一组实际路径,只需迭代预期路径,直到考虑到所有实际路径。

from itertools import count

list_with_paths = set(glob.glob("/path/to/dir/*.txt"))

groups = count()

results = []
for g in groups:
if not list_with_paths:
break
for i in range(0,9):
expected = "{:02}-{}.txt".format(g, i)
if "/path/to/dir/" + expected in list_with_paths:
list_with_paths.remove(expected)
else:
expected = "is missing"
results.append(expected)

关于python - 比较 Python 中的递增文件名并检查缺少哪一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com