Python.Как прочитать файл с шагом (блоки), а не переписать каждый блок? - PullRequest
0 голосов
/ 05 февраля 2019

Как лучше всего решить мою проблему?

У меня есть файл, содержащий строковые строки.Я хочу проанализировать это.Таким образом, в моем подходе мне нужно взять сначала N строк, что-то с ними сделать, чем вместо 1-й строки мне нужно взять N + 1 строки и проанализировать этот блок, чем вместо2-я строка - N + 2 строка и т. Д. До конца файла.

st_1
st_2
st_3
...
st_LAST

Первый блок:

[st_1, st_2, ... , st_N]

Второй блок:

[st_2, st_3, ... , st_N, st_N+1]

Последний блок:

[st_LAST-N, st_LAST-N+1, ... , st_LAST]

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Это должно работать:

filename = "your_file.txt"
with open(filename,'r') as f:
    lines = f.readlines()

N = 5# size of block

for i in range(len(lines)-N+1):
    print(lines[i:i+block_size])
0 голосов
/ 05 февраля 2019

Давайте рассмотрим, как вы присвоили текст файла переменной (ам).Далее вы можете разбить его на строки.Переберите диапазон длины и используйте его для создания срезов и затем зацикливайте их.

s='some text1\nsome text2\nsome text3\nsome text4\nsome text5\nsome text6\n'
n_block = 3 # size of the block you want to split
list_s=s.split('\n')
for i in range(len(list_s)):
    block = i + n_block if i + n_block < len(list_s)-1 else len(list_s)-1
    for y in list_s[i:block]:
        #...
        #do something
        #...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...