Test11-函数和文件

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

应该看到的编译结果

需要注意的知识点

  1. 复习下,我们前面学过的文件I/O的知识

    复习传送门知乎传送门 CSDN传送门

    这里就简单复习下read()的知识

    read()命令方法从一个打开的文件中读取一个字符串。Python字符串可以是二进制数据,而不是仅仅是文字。

    read()指令的标准语法如下:

    flieObject.read([count])

  2. 代码中用到了readline()指令

    readline()会扫面文件中的每一个字节,知道找到一个\n为止,然后它会停止读取文件,并且

    作为字符串返回此前的文件内容。文件f会记录每次调用readline()后的读取位置,这样它就可

    以在下次被调用时读取接下来的一行了。

  3. 代码中用到的seek()指令

    seek()方法用于移动文件读取指针到指定位置

    标准写法:

    fileObject.seek(offset[, whence])
    

    参数:

    • offset: 开始的偏移量,也就是代表需要移动偏移的字节数

    • **whence:**可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;

      0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

    所以seek(0)的意思是从文件开头开始算起


这是**《笨方法学Python》**的第十一篇文章

希望自己可以坚持下去

希望你也可以坚持下去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值