您的位置:首页 > 编程语言 > Python开发

Learn Python The Hard Way学习(20) - 函数和文件

2012-06-20 16:52 615 查看
回忆一下函数的检查列表,一边练习一边看看函数和文件是怎么一起工作的。
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
这两行是一个意思。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: