使用Python导入和解析TSV文件
好的...我正在尝试写一个Python脚本,目的是把一个TSV文件导入到一个矩阵中。然后我想提取前面三列的数据:第一列是日期,第二列是最低温度,第三列是最高温度。我想从第二列中获取最低温度,以及对应的日期;同时也想获取第三列的最高温度和对应的日期。这些数据来自一个NOAA文件。文件的顶部有一些网站信息等,而我想要的数据从第9行开始,并且那一行是以制表符开头的。我现在还不知道怎么才能获取到对应的日期。此外,我在这个过程中遇到了很多错误。因为我已经有两年没碰Python了,所以请多多包涵。
import csv
inFile = 'weather1.txt'
with open(inFile,'r') as tsv:
for i in range (8):
inFile.next()
weatherOutput = [line.strip().split('\t') for line in tsv];
for row in WeatherOutput:
weatherOutput.append(row);
print (WeatherOutput)
day = (col[1])
maxTemp = (col[2])
minTemp = (col[3]);
minimumTemp = min(col[3])
maximumTemp = max(col[2])
print (minimumTemp, maximumTemp);
1 个回答
0
你已经把数据分成了一个列表的列表,可以用zip来转置这个列表:
weather = [["monday",22,10],["tuesday",25,9]]
days, maxTemps ,minTemps = zip(*weather)
print (days, maxTemps, minTemps)
('monday', 'tuesday') (22, 25) (10, 9)
索引是从0
开始的,而不是1
,所以如果你想访问前三个元素,应该用col[0]
、col[1]
和col[2]
。
如果你在遍历的列表上添加元素,这样会导致列表不断增长,这样你就会陷入无限循环,代码永远也不会继续执行:
for row in WeatherOutput:
weatherOutput.append(row);
print (WeatherOutput)