Python学习笔记之文件和流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记之文件和流相关的知识,希望对你有一定的参考价值。

打开文件:open(name[,mode[,buffering]]),返回一个文件对象,模式(mode)和缓冲(buffering)是两个可选参数。

假设有一个名为somefile.txt的文件,存储路径为c:\text,打开方式如下:f = open(r‘C:\text\somefile.txt‘)

mode参数:如果open函数只带一个文件名参数,可以获得能读取文件内容的文件对象,如果要进行写操作,则必须要提供一个模式操作显式声明。

 

描述
‘r‘ 读模式
‘w‘ 写模式
‘a‘ 追加模式
‘b‘ 二进制模式(可添加到其他模式中使用)
‘+‘ 读/写模式(可添加到其他模式中使用)

 

‘r+‘参数可以在一个文件读写时使用

‘rb‘参数可以读取一个二进制文件

buffering函数:控制文件的缓冲,如果是0或者False,则I/O操作是无缓冲的(直接对硬盘进行操作),是1或者True则I/O操作针对内存,在进行flush或者close时才更新硬盘上的数据,大于1的数字代表缓冲区大小(字节),为负数表示使用默认缓冲区大小。

 

基本文件方法:文件或流最重要的能力是提供或接收数据。

>>> f2 = open(F:\Python.txt)
>>> f2.read()
hello worldhi
>>> f3 = open(F:\Python.txt,a)
>>> f3.write(\nPython)
7
>>> f3.close()
>>> f2.read()
\nPython
>>> f2.close()

read方法可以指定读取个数。

使用writelines(list)对文件进行修改:

f = open(F:\Python.txt)
lines = f.readlines()
f.close()
lines[1] = bye bye
f2 = open(F:\Python.txt,w)
f2.writelines(lines)

 

 关闭文件:

  • 使用try/finally语句,在finally语句中调用close方法;
  • with语句,打开文件并将其赋值到变量上,文件在语句结束时自动关闭,即使是由于异常引起的结束也是如此。

  with open(‘file.txt‘) as file1:

    do_something(somefile)

上下文管理器:是一种支持__exit__和__enter__两个方法的对象,__enter__方法不带参数,在进入with语句块的时候被调用;__exit__方法有三个参数:异常类型、异常对象和异常回溯,在离开方法(带有通过参数处理的、可引发的异常)时这个函数被调用,如果__exit__返回false,那么所有异常都不会被处理。

文件可以用作上下文处理器,__exit__关闭文件,__enter__返回文件对象本身。

文件对象是一个可迭代对象,对于大文件的读取,可以使用如下方法:

f = open(F:\Python.txt)
for x in f:
    print(x)
f.close()

或者直接对文件进行迭代,不使用变量存储文件对象:

for line in open(F:\Python.txt):
    print(line)

line1,line2 = open(F:\Python.txt)
print(line1)
print(line2)

lines = list(open(F:\Python.txt))
print(lines)

 

以上是关于Python学习笔记之文件和流的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

python学习 文件和流

Python学习笔记之正则表达式

DOM探索之基础详解——学习笔记

Python Tornado初学笔记之表单与模板

文件和流)