Разделение чисел в одних и тех же ячейках между двумя файлами "Comma-separated values csv"

Вот другой подход с использованием python (проверено на python3 3.5.2, без жалоб от pylint3 1.5.6):

""" Locate entire file contents contiguous in other file """

import sys
import re
from mmap import mmap, PROT_READ

def memmap(name):
    """ Return memoryview of readonly mmap """
    with open(name, 'rb') as file:
        return memoryview(mmap(file.fileno(), 0, access=PROT_READ))

def finder(needle, haystack):
    """ Return iterator """
    return re.compile(re.escape(needle)).finditer(haystack)

print(tuple(finder(*(memmap(name) for name in sys.argv[1:3]))))

Работа с аргументами командной строки через sys.argv признается упрощенной. Вы можете сделать много других вещей с возвращаемым значением finder на двух объектах memoryview, которые вы передаете, кроме передачи его в tuple. Каждый элемент SRE_Match, выдаваемый итератором, возвращаемым finder, имеет множество методов, выборка которых обобщена в выводе printspan, например, указывается диапазон байт каждого совпадения).

3
19.07.2016, 03:55
0 ответов

Теги

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