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

1 回答 1

4

我不明白你为什么要命名一个变量 - 只是索引regFile... 以下是编写你所拥有的内容的 Pythonic 方式(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))}
于 2013-04-25T13:34:45.057 回答