赞 | 3 |
VIP | 21 |
好人卡 | 10 |
积分 | 2 |
经验 | 32573 |
最后登录 | 2024-6-13 |
在线时间 | 332 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 155
- 在线时间
- 332 小时
- 注册时间
- 2013-7-6
- 帖子
- 356
|
本帖最后由 wolves 于 2015-2-19 20:21 编辑
a=File.open("abc.txt")
a.each_line do |i|
p i if a.lineno==12
end
a.close
a是文件对象,abc.txt是txt文档,i是当前行内容,12是当前行数。
io的lineno方法可以获取each_line迭代的当前次数。
具体解释是
#第一行,打开文件abc.txt,打开文件的原型是
io=File.open(file,mode)
#或
io=open(file,mode)
#mode是打开方式,不想改文件的话缺省就可以了。
#如果想更改文件的话,要把mode改成"w+"或“r+"或"a+",使用"w+"会将已存在的该文件清空,使用a+会在文件结尾追加,\n是换行符,可以用正则表达式换掉。
#写文件用io的write方法:
io.write(str)
#想改变该文件现在读取的位置可以修改文件指针:
io.pos=0
#很像光标。具体内容请参考Ruby的IO类。
第二行是文件的迭代操作,打开一个文件我们可以用each_line的方法逐行获取文件内容(结尾的\n也会尾随)
两个|中间的变量是要被迭代的变量,文件相当于要被逐个迭代给变量的容器。
ruby中的for语句最终也要在ruby中变为迭代的方式each执行。
一不小心说多了-.-|||
知道i是每行的内容的字符串就行了。
最后,文件打开是占内存的,所以需要关闭,用文件的close方法就可以关闭文件了。 |
评分
-
查看全部评分
|