《笨办法学Python》 第20课手记

《笨办法学Python》 第20课手记

本节课讲函数与文件,内容比较简单,但请注意常见问题解答,你应该记住那些内容。

指针表示存储地址。

原代码如下:

from sys import argv #从sys模组中引入argv

script, input_file = argv #将argv的列表变量赋值给script和input_file

def print_all(f): #定义一个打印文件的函数
  print f.read() #函数主体,打印从f变量中读取的内容

def rewind(f): #定义一个复读函数
  f.seek(0) #函数主体使用seek设置文件(指针)的偏移。这里,作者想要你知道它的存在,看不懂先记住就好

def print_a_line(line_count, f): #定义一个只打印一行的函数,并将文件内部指针移向下一行
  print line_count, f.readline()

current_file = open(input_file) #使用open函数打开文件,并赋值给curren_file(文件变量)

print "Now let's print the whole file:\n"

print_all(current_file) #调用函数print_all

print "Let's rewind, kind of like a tape."

rewind(current_file) #调用函数rewind,rewin读取的是文件内部的指针,而不是文件的指针

print "Let's print three lines:"

current_line = 1 #current_line表示行号的变量,首先置1
print_a_line(current_line, current_file)  #调用print_a_line函数,下同

current_line = current_line + 1 #行号加1
print_a_line(current_line, current_file)

current_line = current_line + 1 #行号加1
print_a_line(current_line, current_file)

结果如下:

本节课涉及的内容

Python中对于本节课涉及到的部分函数的解释:

使用 python -m podoc file 可查看,你需要按下回车以显示更多内容才能看到这里

seek函数: file.seek(offset[, whence])

offset: 文件的读/写指针位置。 whence: 这是可选的,默认为0,这意味着绝对的文件定位,其他值是1,这意味着当前的位置和2手段寻求相对寻求相对文件的结束。

f.seek(0)表示将指针转移到文件的0byte位置,即开始位置。

readline读取一行之后会将文件内部的指针移向下一行,下次调用readline则会读取下一行位置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java编程技术

什么是重排序与中断

Java内存模型中,允许编译器和处理器对指令进行重排序,但是重排序可以保证最终执行的结果是与程序顺序执行的结果一致,并且只会对不存在数据依赖性的指令进行重排序,...

842
来自专栏web前端教室

JavaScript ES6 模板字符串

偶然发现这个新东西,ES6也有模板了,是使用反引号`,来表示的。 这个新东西被称为字符串字面量,就是模板字符串。它使JS也有了简单的字符串插值特性。 为什么说是...

2849
来自专栏LinkedBear的个人空间

唠唠SE的IO-02——字节输入输出流 原

计算机中都是二进制数据,一个字节是8个2进制位。字节可以表示所有的数据,比如文本,音频,视频。

903
来自专栏黄Java的地盘

【译】前端知识储备——Promise/A+规范

在面试别人的过程中,发现基本上没有人对整个Promise完全了解,因此希望通过这篇文章来帮助大家了解下Promise的全貌。本文的主要内容是Promise/A+...

1513
来自专栏从流域到海域

堆和栈的区别

堆(heap)和栈(stack) 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(...

2237
来自专栏前端侠2.0

co yield避免嵌套详细代码示例。

1621
来自专栏哲学驱动设计

模式应用:自定义匹配

    本篇博客记录了我在工作过程中的一个设计单元。 需求 GIX4项目中需要为非国标清单进行匹配,用户自定义匹配规则。规则可以被存储到数据库中,下次重复使用...

2045
来自专栏老马说编程

计算机程序的思维逻辑 (第7节更新) - 再谈乱码恢复

在第6节和第7节,我们讨论了文本的二进制编码、乱码、以及恢复,第6节受到了很多读者的一致好评,但第7节有读者反馈解说的不太透彻,希望再详细一点,本文就是对第7节...

2116
来自专栏aCloudDeveloper

局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)

     我们先来看内存中的几大区:  内存到底分几个区? 下面有几种网上的理解,我整理一下: 一:  1、栈区(stack)— 由编译器自动分配释放 ,存放函...

3508
来自专栏企鹅号快讯

PHP中被忽略的性能优化利器:生成器

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP5.5.0才引入的功能,也...

39414

扫码关注云+社区

领取腾讯云代金券