Найти числа из 8 символов в текстовом файле - PullRequest
0 голосов
/ 07 мая 2018

У меня есть текстовый файл размером 1 мегабайт, который содержит несколько числовых строк и буквенных строк с длиной символов 3, 5, 9, 8, 10. Как мне найти все числа, которые имеют только длину из 8 символов? И после нахождения чисел длиной 8 символов эти числа должны быть извлечены и сохранены в этом файле extract.txt. Как я могу это сделать?

Пример ...

file.txt

91664356
1665
00643
qouytyi
15790008
1567065
abcdeigf
qoiyytgxf
931467846
00851685
150033561246788
074226899

extracted.txt

91664356
15790008
15670654
00851685

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

исходный файл, как это? 12345678 123456789 1234567 abcdefg abcdefgh abcdefghi тогда, может быть, этот скрипт может помочь вам

f = open('stack.txt')
s = open('save.txt','w')
for i in f.read().split(' '):
    if(len(i)!=8):
        continue
    else:
        try:
            print(int(i))#if not number,int() will make an error
            s.write(i)
        except:
            pass
f.close()
s.close()
0 голосов
/ 07 мая 2018

Использование -

with open('data.txt', 'r') as myfile:
    data=myfile.read()

numbers = re.findall(r'\D(\d{8})\D', data)

Он будет отлавливать числа, имеющие длину 8, что не включает числа типа 478319.3

Будет выведен список таких чисел.

Пример

Пусть

123.32 is a good number 12 also 12345678 478319.3

будет содержимым файла. Выход будет -

['12345678']
...