首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用readline()?

使用readline()?
EN

Stack Overflow用户
提问于 2019-10-25 23:44:29
回答 3查看 60关注 0票数 3

我有一个关于这个项目的问题:

代码语言:javascript
复制
%%file data.csv 
x1,x2,y
0.4946,5.7661,0
4.7206,5.7661,1
1.2888,5.3433,0
4.2898,5.3433,1
1.4293,4.5592,0
4.2286,4.5592,1
1.1921,5.8563,0
3.1454,5.8563,1

f = open('data.csv')
data = []
f.readline()
for line in f:
  (x1,x2,y) = line.split(',')
  x1 = float(x1)
  x2 = float(x2)
  y = int(y)
  data.append((x1,x2,y))

readline在这里的用途是什么?我看过不同的例子,但这里似乎删除了第一行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-25 23:47:42

Python是串行读取数据的,所以如果一行被读取一次,python就会跳转到下一行。r.readline()读取第一行,因此在循环中它不会被读取。

票数 5
EN

Stack Overflow用户

发布于 2019-10-25 23:45:52

这正是要点:删除第一行。如果您注意到,该文件将列的名称作为其第一行(x1,x2,y),并且程序希望忽略该行。

票数 3
EN

Stack Overflow用户

发布于 2019-10-26 00:02:30

在循环中读取文件行之前使用readline()方法,等于:

代码语言:javascript
复制
for line in f.readlines()[1:]:     
    ...

例如,可以用来跳过表头的。

在您文件中,当您要将x1变量转换为浮点型时,它会引发ValueError,因为在第一次迭代中x1不包含数字字符串类型值"x1"。为了避免这个错误,您可以使用readline()将迭代器切换到包含纯数字的第二行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58561745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档