2013-04-01 16 views
0

我试图循环浏览此文本文件,将文本分割并将高和低临时数据提取到2个单独的列表中: 我有以下代码这给了我很高的温度,但我坚持我缺少什么来获得低温。有人能解释我在哪里错了吗?预先感谢您的帮助。如何从我的分割列表中提取第二组数据

high =[] 
low =[] 
line ='' 

inFile = open('julyTemps.txt') 

for line in inFile: 
    fields = line.split(' ') 

with open ('julyTemps.txt') as inFile: 
    if fields != 3 or 'Boston' == fields[0] or 'Day' == fields[0]: 
     high = (line.split(' ')[1:2] for line in inFile) 
     high =[item[0] for item in high if item] 
     high = ','.join([i for i in high if i.isdigit()]) 
with open ('julyTemps.txt') as inFile: 
    if fields != 3 or 'Boston' == fields[0] or 'Day' == fields[0]: 
     low = (line.split(' ')[2:2] for line in inFile) 
     low = [item[0] for item in low if item] 
     low =','.join([i for i in low if i.isdigit()]) 

txtfile:

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 
11 80 66 
12 86 63 
13 90 69 
14 91 72 
15 91 72 
16 88 72 
17 97 76 
18 89 70 
19 74 66 
20 71 64 
21 74 61 
22 84 61 
23 86 66 
24 91 68 
25 83 65 
26 84 66 
27 79 64 
28 72 63 
29 73 64 
30 81 63 
31 73 63 

回答

2

只需读取一个文件,加入低频和高频两个单独的列表:

lows, highs = [], [] 
with open ('julyTemps.txt') as inFile: 
    for line in inFile: 
     try: 
      day, low, high = map(int, line.split()) 
     except ValueError: 
      continue # no temps on this line 
     lows.append(low) 
     highs.append(high) 

我们只能看有3个整数值的行其余的会抛出一个ValueError,要么是因为线上没有3个值,或者因为有非整数值。这些行被忽略。

+0

这真的很快 - 非常感谢您的帮助。我可以看到为什么这个代码比我的更好 - 我一直在学习! – user2127168

相关问题