您的位置:时时app平台注册网站 > 编程知识 > #20 Python文件【时时app平台注册网站】

#20 Python文件【时时app平台注册网站】

2019-11-08 01:35

close()方法用于关闭文件。Python拥有垃圾回收机制,会在文件对象的引用计数降至零的时候自动关闭文件,所以在Python编程里,如果忘记关闭文件并不会造成内存泄露那么危险的结果。

文件IO操作

对于一个文件的操作,无非不过创建、删除、读、写,创建和删除在OS模块里面已经说过,那只剩下读和写了,也就是IO(Input,Output)操作了。

接下来,将以徐志摩的《再别康桥》为例子,深入解读Python中文件IO操作

轻轻的我走了,正如我轻轻的来;我轻轻的招手,作别西天的云彩。----那河畔的金柳,是夕阳中的新娘;波光里的艳影,在我的心头荡漾。----软泥上的青荇,油油的在水底招摇;在康河的柔波里,我甘心做一条水草!----那榆荫下的一潭,不是清泉,是天上虹;揉碎在浮藻间,沉淀着彩虹似的梦。----寻梦?撑一支长篙,向青草更青处漫溯⑷;满载一船星辉,在星辉斑斓里放歌。----但我不能放歌,悄悄是别离的笙箫;夏虫也为我沉默,沉默是今晚的康桥!----悄悄的我走了,正如我悄悄的来;我挥一挥衣袖,不带走一片云彩。

使用 with open 打开文件,代码块执行完,文件都自动关闭

时时app平台注册网站 1

  六、课时28课后习题及答案

前言

前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛。在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Python对的文件IO操作并不是很复杂,相信你很快就能掌握它!

五、第三方模块

 

1. 打开文件

Python获得文件句柄的方式与c及其类似,使用内置函数open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 「file表示文件名、mode表示打开方式、buffering表示寄存区缓冲大小(负值为系统默认,0为没有寄存区缓存,1为文件会寄存行,大于1的整数为寄存区缓存大小)、encoding表示文件编码、newline表示换行符」

f = open('再别康桥.txt')   # 以默认读的方式打开再别康桥,注意:文件路径(此时程序和再别康桥在同一路径)f = open('xxx.txt', 'w')   # 以写的方式打开文件,注意:如果此文件不存在,则创建这个文件;如果存在,则删除原文件所有内容

对于不同的文件,有不同的处理方式,常用的mode参数如下:

模式                                                描述 r                                                  读 w                                                  写 r                                                 读写 w                                                 写读 a                                                 追加 a                                                追加读 rb                                              二进制读 wb                                              二进制写 rb                                             二进制读写 wb                                             二进制写读 ab                                             二进制追加 ab                                            二进制追加读

这些模式看似复杂,其实内部规律很清晰,接下来将用文件的读和写来充分了解这些模式

7、把内存中文件的内容刷入到硬盘中

flush(self) -> None
调用文件对象的 flush() 方法可以把内存中的文件的内容写入到硬盘中。

打开完文件并取得文件对象之后,就可以利用文件对象的一些方法对文件进行读取或修改等操作。如下表列举了一些文件对象的方法:

4. 关闭文件

close() 「关闭文件,如果将寄存区有缓存则写入文件」

In [48]: f.close()

四、标准文件

一般说来,只要你的程序一执行,那么你就可以访问三个标准文件。它们分别是标准输入(一般是键盘)、标准输出(到显示器的缓冲输出)和标准错误(到屏幕的非缓冲输出)。这里所说的"缓冲"和"非缓冲"是指 open() 函数的第三个参数。这些文件沿用的是 C 语言中的命名,分别为stdin,stdout 和 stderr。我们说"只要你的程序一执行就可以访问这三个标准文件",意思是这些文件已经被预先打开了,只要知道它们的文件句柄就可以随时访问这些文件。

Python 中可以通过 sys 模块来访问这些文件的句柄。导入 sys 模块以后,就可以使用sys.stdin,sys.stdout 和 sys.stderr 访问。print() 语句通常是输出到 sys.stdout;而 input() 语句则通常从 sys.stdin 接受输入。

在Python中,使用open()这个函数来打开文件并返回文件对象:help(open)

3. 文件的写

write 「text表示要写入文件的内容,并返回写入的字符数」

In [13]: f = open('new_file.txt', 'w')   # 以写的方式打开文件,如果文件不存在则创建,如果存在则删除原有内容In [14]: f.write('hello')   # 写入helloOut[14]: 5In [15]: f.write('wordn')   # 写入word并换行Out[15]: 5

注意:如果这时候去查看文件内容,发现里面还是空荡荡的,为什么呢?因为寄存区缓存的原因,默认是使用系统的寄存区缓存机制,想要立刻写入文件可以改变buffering的值,也可以使用close()方法关闭文件(关闭文件时所有内容都会写入文件)、再或者使用flush()方法立即将寄存区内容写入文件

In [23]: f.flush()   # 使用flush()方法立即刷入In [24]: ! cat new_file.txt   # 使用命令查看文件内容,文件内容有两行,一行字,一行空白(因为使用n换行了),这个是Linux系统命令
	  

本文由时时app平台注册网站发布于编程知识,转载请注明出处:#20 Python文件【时时app平台注册网站】

关键词:

  • 上一篇:闭包
  • 下一篇:没有了