gpt4 book ai didi

python - 查找文件中缺失的行

转载 作者:行者123 更新时间:2023-12-01 02:16:14 25 4
gpt4 key购买 nike

我有一个 7000 多行的 .txt 文件,其中包含描述和图像的有序路径。示例:

abnormal /Users/alex/Documents/X-ray-classification/data/images/1.png
abnormal /Users/alex/Documents/X-ray-classification/data/images/2.png
normal /Users/alex/Documents/X-ray-classification/data/images/3.png
normal /Users/alex/Documents/X-ray-classification/data/images/4.png

缺少一些行。我想以某种方式自动搜索缺失的行。直觉上我写道:

f = open("data.txt", 'r')
lines = f.readlines()
num = 1
for line in lines:
if num in line:
continue
else:
print (line)
num+=1

但是它当然不起作用,因为行是字符串。有什么优雅的方法来解决这个问题吗?也许使用正则表达式?提前致谢!

最佳答案

以下内容应该可以工作 - 它从文件名中获取数字,查看它是否比前一个数字高 1 以上,如果是,则计算出所有“中间”数字并打印它们。需要打印数字(然后重建文件名),因为 line 在迭代过程中永远不会包含丢失文件的名称。

# Set this to the first number in the series -1
num = lastnum = 0

with open("data.txt", 'r') as f:
for line in f:
# Pick the digit out of the filename
num = int(''.join(x for x in line if x.isdigit()))
if num - lastnum > 1:
for i in range(lastnum+1, num):
print("Missing: {}.png".format(str(i)))
lastnum = num

这种方式的主要优点是,只要您的文件在列表中排序,它就可以处理从 1 以外的数字开始的情况,并且还会报告列表中多个缺失的数字。序列。

关于python - 查找文件中缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356973/

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