我有一个CSV文件,/home/user/file.csv
,例如:
V1
1.24
4.55
3
我试图只读取数字,,但事先并不知道有标题。
如何读取此内容并跳过仅保留整数/浮点数/长/等的所有String
元素?
以下尝试不起作用,因为line
不是数字,即使我正在阅读的行是一个数字:
f_in = open('/home/user/file.csv')
for line in f_in:
if !isinstance(line,basestring):
#Now we only have the rows that are numbers (but not really!)
答案 0 :(得分:3)
try:
float(line)
except ValueError:
# not a number
另见"Ask forgiveness not permission" - explain
编辑:根据OP请求,显示如下行:
1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0 ,1
import csv
with open('/home/user/file.csv') as csvfile:
for row in csv.reader(csvfile):
for n in row:
try:
float(line)
except ValueError:
# not a number
答案 1 :(得分:1)
f_in = [1.24, 4.55, 3, "aaa"]
for line in f_in:
try:
float(line)
#it is number
except ValueError:
#it isn't a number
答案 2 :(得分:1)
csv
模块提供了一个Sniffer
类,用于确定您的文件是否有(一行)标题。
has_header(sample)
分析示例文本(假设为CSV格式),如果第一行显示为一系列列标题,则返回
True
。