Learn Python The Hard Way学习(20) - 函数和文件
回忆一下函数的检查列表,一边练习一边看看函数和文件是怎么一起工作的。
[python]
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 lile 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)
注意一下,我们是怎么把行号传递给print_a_line函数的。
运行结果
root@he-desktop:~/mystuff# python ex20.py test.txt
First let's print the whole file:
Hi!
Welcome to china!
Thank you.
Goodbye!
Now let's rewind, kind of lile a tape.
Let's print three lines:
1 Hi!
2 Welcome to china!
3 Thank you.
root@he-desktop:~/mystuff#
加分练习
1. 给每行添加注释。
2. 每次调用print_a_line都传递了变量current_line,并且在函数中打印出来,那么print_a_line是怎么变成line_count的呢?
3. 检查函数是否用def定义,参数是否正确。
4. 查询seek函数的用法。
seek(offset,where): where=0从起始位置移动(默认),1从当前位置移动,2从结束位置移动。当有换行时,会被换行截断。seek()无返回值,故值为None。
5. 查询一下 += 符合的用法,然后再程序使用一下。
current_line = current_line + 1
current_line += 1
这两行是一个意思。
作者:lixiang0522
补充:Web开发 , Python ,