【发布时间】:2013-03-14 21:51:54
【问题描述】:
我正在寻找一种聪明的方法来检查文件的第一行,然后再将其作为 csv 文件读取。我想检查是否有# coding: xxx 行,以便我可以相应地解码读取数据。但如果没有这样的行,第一行可能已经包含一个数据集。寻求对我来说似乎很残酷,我希望有一个巧妙的方法来做到这一点。
import re
import csv
fl = open(filename)
line = fl.readline()
coding = re.match('^#\s*coding\s*(:|=|:=)\s*([\w\d\-_]+)\s*$', line)
fl.seek(0)
reader = csv.reader(fl)
# ...
【问题讨论】:
-
什么是“如此残酷”的寻求?
-
@ThomasOrozco:这是另一个最终可以跳过的 I/O 调用。