python基础教程第十一章学习笔记

来源:互联网 发布:osi网络七层协议 编辑:程序博客网 时间:2024/04/30 11:50

1、open函数可以用来打开文件,返回一个文件对象,他有一个强制性参数,就是文件名,以字符串的形式提供。

可选参数有模式和缓冲两个。模式用于打开文件要进行什么操作,w写,r读,a追加,b二进制,+读写模式

open函数中模式参数默认的为读模式。在任何一个模式下加上+,都会具有读写模式的功能。

2、如果不指定模式为二进制的时候,那么python会默认打开文件以文本形式,由于换行符在unix和windows下的不同,python会自动将所有的换行符都转换为\n形式,如果是单纯的文本文件不会出问题,但是如果是二进制的音频文件等等,这样的转化就有可能丢失数据,所以用b模式打开会给出和原文件中一样的内容,不会做任何转化。

3、当open返回一个文件对象的时候,即可以用它来引用一些方法对文件操作,比如write

f.write(a),这句话会将a的内容追加到f所对应的文件当中。

f.read(),如果read在调用时没有指定任何参数,那么就会读出整个文件的内容,如果提供了一个数字参数,那么就表明这一次要读多少个字符。读取文件的过程中,是有一个指针的东西在引导的,如果先使用read(4),读取前四个字符,在继续使用read()的话,就会读取除了前四个字符以外的所有字符。所以说,在读文件的过程中,那个指针也会一直移动,直到读到文件末尾,我们通过这个指针的位置就知道了,那样也好结束读取操作

4、在命令行中使用管道命令,可以把前一个命令的输出作为接下来一个命令的输入,也就是说,上一个命令的结果,作为下一个命令的输入来处理。

5、随机访问:

正常读取的时候,都是从文件的头部,读取到文件的尾部,如果想自己制定读取文件的位置的话,可以使用seek()和tell()函数。

seek(a)是把当前的读写位置,移动到a位置,a默认是0,也就是文件的开头。其余大于0得数实际上就是一个偏移量,这个偏移量是从文件开头开始计算的。

tell()函数式返回文件当前的读写位置。大多数情况下返回的是一个长整数

6、readline()函数读取文件的一行,直到它遇到换行符的时候停下。如果函数指定一个数字参数,那么也就是指定了这个函数能够读取字符数目的最大值

7.readlines()每次读取文件的一行,直到文件结束,并作为列表返回。

8、在对文件的操作完成之后一定要使用close方法来关闭文件,避免文件的数据丢失

9、可以讲对文件的操作放入try/finally组合中,将文件的关闭语句放入finally组,这样的话就不用担心文件的关闭问题了。

10、with open("123.txt", "w") as f1与f1=open("123.txt","w")的功能基本一样,只不过这一次不用再担心关闭文件的问题,因为with无论在什么情况下,在语句结束之后都会关闭文件,即使是有异常的时候。

11、一般来说,对文件进行一些修改之后,这些修改并不会立刻就更新到磁盘上的文件中,因为使用磁盘上的文件,涉及到外设的访问会很耗时间,如果你很快又要使用这个文件,那么就会存到一个缓冲区里面,而不是立即将上一次的修改写入磁盘,只有在文件关闭的时候,才会把修改的内容更新至磁盘上的文件。

12、如果在打开文件的时候没有把open函数的返回值赋值给一个变量而是直接引用的话,那么再语句结束之后python会自动关闭它

13、sys.stdin也回返回一个可迭代对象,用于迭代屏幕上输入的所有行

14、标准流中的stdin,stdout,stderr,都是文件对象


0 0