Считайте первые строки N файла в Python

Массив MSR оффшорных PM хранится здесь для SnB, другие архитектуры близки.
Макрос INTEL_UEVENT_EXTRA_REG здесь здесь , и он просто устанавливает msr для второго параметра, config_mask - 0x000000FFULL и valid_mask для третьего параметра (первый - событие для запрограммируйте связанный обычный PMR с).

Значения snb_hw_cache_extra_regs - это то, что будет записано в выбранной PM MSR 1 sup>.
Этот массив ищется здесь и используется здесь , чтобы выбрать первое совпадение PM MSR, где config arg происходит из массива hw_cache_event_ids . [ 1118]

Так что это в основном цикл, проверяющий пару битовых масок, пока не будет найдена совместимая PM MSR, я думаю, вы можете просто пропустить это и посмотреть на значения, хранящиеся в массиве snb_hw_cache_extra_regs.


1 sup> Поскольку макрос, определенный для создания значений в snb_hw_cache_extra_regs, никогда не используется повторно в источнике, и значения отображаются непосредственно в схему MSR, задокументированную в руководствах Intel, я не стал потрудитесь проверить это утверждение.

139
задан Mad Physicist 7 June 2018 в 13:43
поделиться

5 ответов

Python 2

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head

Python 3

with open("datafile") as myfile:
    head = [next(myfile) for x in range(N)]
print(head)

Другой способ (как Python 2, так и 3)

from itertools import islice
with open("datafile") as myfile:
    head = list(islice(myfile, N))
print head
222
ответ дан 23 November 2019 в 23:20
поделиться

Это работает на Python 2 & 3:

from itertools import islice

with open('/tmp/filename.txt') as inf:
    for line in islice(inf, N, N+M):
        print(line)
0
ответ дан 23 November 2019 в 23:20
поделиться

Если вы хотите что-то, что, очевидно (без поиска эзотерических вещей в руководствах), работает без импорта и try / except и работает на значительном диапазоне версий Python 2.x (от 2.2 до 2.6):

def headn(file_name, n):
    """Like *x head -N command"""
    result = []
    nlines = 0
    assert n >= 1
    for line in open(file_name):
        result.append(line)
        nlines += 1
        if nlines >= n:
            break
    return result

if __name__ == "__main__":
    import sys
    rval = headn(sys.argv[1], int(sys.argv[2]))
    print rval
    print len(rval)
2
ответ дан 23 November 2019 в 23:20
поделиться

Нет специального метода для чтения количество строк, отображаемых файловым объектом.

Думаю, проще всего было бы следующее:

lines =[]
with open(file_name) as f:
    lines.extend(f.readline() for i in xrange(N))
6
ответ дан 23 November 2019 в 23:20
поделиться
N = 10
file = open("file.txt", "a")#the a opens it in append mode
for i in range(N):
    line = file.next().strip()
    print line
file.close()
17
ответ дан 23 November 2019 в 23:20
поделиться
Другие вопросы по тегам:

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