Python系列之笨方法学Python是我学习《笨方法学Python》—Zed A. Show著
的学习思路和理解,如有不如之处,望指出!!!
本节是利用Python的函数做文件的IO处理
源代码
#ex20.py
from sys import argv
script,input_file=argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count,f):
print line_count,f.readline()
current_file=open(input_file)
print "First let's print the whole file:\n"
print_all(current_file)
print "Now let's rewind, kind of like a tape."
rewind(current_file)
print "Let's print three lines:"
current_line=1
print_a_line(current_line,current_file)
current_line=current_line+1
print_a_line(current_line,current_file)
current_line=current_line+1
print_a_line(current_line,current_file)
这里需要注意,在编译前需要创建一个txt文件
# 文件命名为11.txt
this is line 1
this is line 2
this is line 3
应该看到的编译结果
需要注意的知识点
-
复习下,我们前面学过的文件I/O的知识
这里就简单复习下
read()
的知识read()
命令方法从一个打开的文件中读取一个字符串。Python字符串可以是二进制数据,而不是仅仅是文字。read()
指令的标准语法如下:flieObject.read([count])
-
代码中用到了
readline()
指令readline()
会扫面文件中的每一个字节,知道找到一个\n
为止,然后它会停止读取文件,并且作为字符串返回此前的文件内容。文件f会记录每次调用
readline()
后的读取位置,这样它就可以在下次被调用时读取接下来的一行了。
-
代码中用到的
seek()
指令seek()
方法用于移动文件读取指针到指定位置标准写法:
fileObject.seek(offset[, whence])
参数:
-
offset: 开始的偏移量,也就是代表需要移动偏移的字节数
-
**whence:**可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;
0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
所以
seek(0)
的意思是从文件开头开始算起 -
这是**《笨方法学Python》**的第十一篇文章
希望自己可以坚持下去
希望你也可以坚持下去