Parsing python文件解析查询

Parsing python文件解析查询,parsing,Parsing,我试图解析一个文本文件,以便在三列中的第二列(高)和第三列(低)值指向两个不同的空字符串。但不幸的是,尽管我尝试了无数次,我还是无法让它工作。我的文本文件如下所示 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 这是我迄今为止

我试图解析一个文本文件,以便在三列中的第二列(高)和第三列(低)值指向两个不同的空字符串。但不幸的是,尽管我尝试了无数次,我还是无法让它工作。我的文本文件如下所示

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
低温=[]
高温=[]
infle=open('julyTemps.txt')
对于infle.readlines()中的行:
字段=行.strip(“”)
如果len(字段)<3或不是字段[0]。isdigit():
通过
其他:
低温附加(字段[2])
高温附加(字段[1])
打印低温
打印高温
最后,我的目标是计算这些值之间的差异,并绘制跨天的差异。我想我可以做到这一点,如果我能找出为什么我不能在空向量中得到正确的值


谁能解释一下我做错了什么。提前感谢….

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

 inFile = open('julyTemps.txt', 'rU') # read universal
你的总体方法看起来还不错。不过,通过文件对象进行迭代比使用读线更好:

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))

您当前的方法(或我在上面发布的方法)到底有什么问题?

谢谢您的快速回复。我基本上得到了两个像这样的字符串…我仍然不明白为什么我得到这些…低温=['9','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1']