-1

我有一个包含 100 行的数据文件,我想创建一个跳过前两行的字典,然后创建一个字典,其中枚举键并将行作为值。

myfile = open(infile, 'r')
d={}
with myfile as f:
    next(f)
    next(f)
    for line in f:

这就是我得到的,我不知道如何使用 iteritems()、enumerate() 或 itervalues(),但我觉得我认为我会使用它们,或者如果有人可以帮助我,我可能不会使用它们。

4

2 回答 2

1

可以执行以下操作:

from itertools import islice
with open(infile, 'r') as myfile:
  d = dict(enumerate(islice(myfile, 2, None)))

但我希望我能理解你为什么要跳过前两行——你确定不想要linecache吗?

于 2013-10-25T02:32:32.663 回答
0

这只是我的头等大事,所以肯定会有改进的余地。


myfile = open(infile, 'r') # open the file
d = {}                     # initiate the dict

for line in myfile:        # iterate over lines in the file
  counter = 0              # initiate the counter
  if counter <= 1:         # if we have counted under 2 iterations
    counter += 1           # increase the counter by 1 and do nothing else
  else:                    # if we have counted over 2 iterations
    d[counter - 2] = line  # make a new key with the name of lines counted (taking in to consideration the 2 lines precounted)
    counter += 1           # increase the counter by 1 before continuing

我不记得在代码中的哪个位置最好关闭文件,但做一些实验并阅读这个这个。另一个开始的好地方真的是google和一般的python 文档

于 2013-10-25T02:30:11.357 回答