为从文件读取的行指定名称

时间:2013-04-25 13:29:51

标签: python python-2.7 python-3.x

我正在逐行读取文件(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()

1 个答案:

答案 0 :(得分: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))}