使用Python导入和解析TSV文件

-6 投票
1 回答
1252 浏览
提问于 2025-04-18 17:25

好的...我正在尝试写一个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)

撰写回答