-1

我正在尝试解析一个文本文件,以便在三列中,第二列(高)和第三列(低)值转到两个不同的空字符串。但不幸的是,即使我尝试了无数次,我也无法让它工作。我的文本文件看起来像这样

Boston July Temperatures
-------------------------

Day High Low
------------

1 91 70
2 84 69
3 86 68
4 84 68
5 83 70
6 80 68
7 86 73
8 89 71
9 84 67
10 83 65

这是我迄今为止尝试过的代码。

low_Temp=[]
high_Temp=[]
inFile = open('julyTemps.txt')
for line in inFile.readlines():
    fields = line.strip(' ')
    if len(fields) < 3 or not fields[0].isdigit():
        pass
    else:
        low_Temp.append(fields[2])
        high_Temp.append(fields[1])
print low_Temp
print high_Temp

最后,我的目标是计算这些值之间的差异并绘制不同天数的差异。如果我能弄清楚为什么我在空向量中没有得到正确的值,我想我可以做那部分。

有人可以解释一下我做错了什么。提前致谢....

4

1 回答 1

0

您需要确保以通用模式打开文件,以考虑不同的行尾:

 inFile = open('julyTemps.txt', 'rU') # read universal

然后,您的一般方法看起来不错。遍历文件对象而不是使用 readlines 更好,但是:

for line in inFile:
    line = line.strip() # remove newline characters
    fields = line.split(' ')

    if len(fields) == 3:
         _, high, low = fields
         high_Temp.append(float(high))
         low_Temp.append(float(low))

您当前的方法(或我在上面发布的方法)遇到的确切问题是什么?

于 2013-04-07T01:11:16.287 回答