Как найти пробелы в списке?

Итак, у меня есть файлы (167k), и теперь они находятся в правильном порядке, благодаря сценарию Сержа здесь - https://askubuntu.com/a/686829/462277.

И теперь мне нужно найти промежутки между именами файлов, разница должна быть 15 и более

Aaaa.bb - 000002 tag tag_tag 9tag  
Aaaa.bb - 000125 tag tag_tag 9tag  
Aaaa.bb - 000130 tag tag_tag 9tag  

. Все они начинаются одинаково и имеют разные окончания. Все на внешнем жестком диске.

1
задан 13 April 2017 в 15:24

1 ответ

версия в python (python3, если быть точным).

сохраните программу ниже под именем diff_filename.py (сделайте ее exectuable) и используйте ее следующим образом:

$ ./diff_filename.py the/directory/containing/the/files

программа предполагает, что числа, которые вы хотите сравнить, всегда находятся в одной и той же позиции имени файла (индексы 10:16).

, поскольку теперь он довольно подробный и выводит правильные имена файлов, включая разница. как только он набирает имя файла, которое не соблюдает минимальную разницу, оно печатает это и останавливается.

вот исходный код:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

'''
usage: ./diff_filename.py the/directory/containing/the/files
'''

import os
import  sys

MIN_DIFF = 15

the_dir = sys.argv[1]
sorted_files = sorted(os.listdir(the_dir))

last_number = None
last_file = None
for current_file in sorted_files:
    current_number = int(current_file[10:16])
    if last_number is None:
        last_number = current_number
        last_file = current_file
        continue
    diff = current_number - last_number
    if diff < MIN_DIFF:
        print('fail! "{}" and "{}" do not respect MIN_DIFF={}'.format(
            last_file, current_file, MIN_DIFF))
        break
    else:
        print('ok! "{}" and "{}" diff={}'.format(last_file, current_file, diff))

    last_number = current_number
    last_file = current_file
1
ответ дан 23 May 2018 в 16:34
  • 1
    Единственное, что я сейчас не знаю, это эта строка: $ ./diff_filename.py / каталог / содержащий / the / files. Где я должен это поставить? – Ceslovas 18 October 2015 в 23:55
  • 2
    Я буду ждать ваших обновлений, я действительно хочу проверить свой путь и научиться использовать python в будущем. – Ceslovas 19 October 2015 в 01:59
  • 3
    вы можете поместить его в любом месте, где хотите, и относиться к нему как к любому исполняемому файлу. – hiro protagonist 19 October 2015 в 07:27

Другие вопросы по тегам:

Похожие вопросы: