你可以使用csv
模块Sniffer
类的实例来推断CSV文件的格式,并检测是否存在标头行以及next()
仅在必要时才跳过第一行的内置函数:
import csv
with open('all16.csv', 'r', newline='') as file:
has_header = csv.Sniffer().has_header(file.read(1024))
file.seek(0) # Rewind.
reader = csv.reader(file)
if has_header:
next(reader) # Skip header row.
column = 1
datatype = float
data = (datatype(row[column]) for row in reader)
least_value = min(data)
print(least_value)
由于在你的示例中datatype和column都进行了硬编码,因此这样处理起来会稍快一些row:
data = (float(row[1]) for row in reader)
注意:上面的代码适用于python3.x。对于Python 2.x,使用以下行来打开文件而不是显示的内容:
with open('all16.csv', 'rb') as file: