码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记之文件和流

时间:2017-08-29 21:55:52      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:表示   返回   nes   进入   exit   异常   通过   可选参数   针对   

打开文件: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学习笔记之文件和流

标签:表示   返回   nes   进入   exit   异常   通过   可选参数   针对   

原文地址:http://www.cnblogs.com/HJhj/p/7445254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!