Как читать файл через определённое количество строк?
Есть файл состоящий из нескольких тысяч, а то и сотен тысяч строк. В дальнейшем он выводится графиком. Чтобы сделать превьюшку, хочу выводить по оси X не каждую точку, а через, скажем через десять или сто. Вопрос: как читать не весь файл, а через определённое количество строк?
Ответы (2 шт):
Автор решения: Алексей Мешков
→ Ссылка
Как бы это нужно, чтобы оставалась каждая десятая или сотая или ещё какая строка. Сечас я делаю так:
f=open("VOLT.txt",newline='\n')
lines=f.readlines()
time_interval=[]
y1=[]
y2=[]
y3=[]
for x in lines:
time_interval.append(x.split(' ')[0])# split(',')
y1.append(x.split(' ')[1])
y2.append(x.split(' ')[2])
y3.append(x.split(' ')[3])
f.close()
...
...
...
plt.show()
Получается очень подробный график. Но он такой не всегда нужен. Нужно бывает посмотреть общие очертания.
Автор решения: Roman Konoval
→ Ссылка
Можно сделать так:
# enumerate для каждого элемента возвращает еще и его индекс
for index, x in enumerate(lines):
# если остаток от деления не 0, то index не кратен 10 - пропускаем
if index % 10 != 0:
continue
time_interval.append(x.split(' ')[0])# split(',')
y1.append(x.split(' ')[1])
y2.append(x.split(' ')[2])
y3.append(x.split(' ')[3])
Второй способ:
for x in lines[0::10]:
time_interval.append(x.split(' ')[0])# split(',')
y1.append(x.split(' ')[1])
y2.append(x.split(' ')[2])
y3.append(x.split(' ')[3])
Тут lines[0::10] возвращает список из каждого 10-го элемента lines.