2013-04-25 2 views
2

Я читаю файл строки за строкой (32 строки, которые находятся в двоичном виде), а затем сохраняет в переменной с именем regFile[i]. Теперь мне нужно назначить имя для каждой строки R0 в переменной regFile[i]= 000000001000000000000 Как я могу назначить каждой строке в моем regFile[i] ?? Вот моя часть кода.Присвоение имени строкам, считанным из файла

def regread(filename): 

     file = open (filename, 'r') 
     regline = file.readlines() 

     reg= regline 
     reg= map(lambda s: s.strip(), reg) 

     for i in range(0,32): 
      regFile[i] = int(reg[i]) 
       'R'i = regFile[i] 
       print 'R' ,i 
     file.close() 

ответ

4

Я не понимаю, почему вы хотите назвать переменную - просто индекс в regFile ... Ниже приводится вещий способ записи, что у вас есть (с использованием islice, чтобы убедиться, что в большинстве 32 строки считываются и int(line, 2) для преобразования двоичного кода в целое число) ...

from itertools import islice 

with open('somefile') as fin: 
    reg_file = [int(line, 2) for line in islice(fin, 32)] 

print reg_file[0], reg_file[31] 

Как @mgilson указывает - если вы действительно хотели, чтобы вы могли поместить их в dict:

reg_file = {'R{}'.format(idx):int(line, 2) for idx, line in enumerate(islice(fin, 32))} 
+0

Я хочу сохранить как R0 = 1-я строка, R1 = 2-я строка, R2 = 2-я строка .. потому что я должен использовать в некоторых сборках, таких как: ADD R3, R2, R1. Поэтому я могу вызвать функцию regread, которая может дать мне эти значения. – user2319906

+0

@ user2319906 - затем поместите их в словарь: '{'R' + str (i): x для i, x в enumerate (reg_file)}' – mgilson

+0

из itertools import islice с открытым ('reg.txt') как fin: reg_file = [line.strip() для строки в islice (fin, 32)] while i <= len (0,32): \t dic = {'R' + str (i): x для i, x в enumerate (reg_file)} \t print "dic ['R']:", dic ['R'] Я получаю ошибку: неверная ошибка synatx для – user2319906

Смежные вопросы