python文件操作

文件与异常处理

1 文件操作

1.1 创建打开文件

内置函数open()

Python内置函数open()可以用指定模式打开指定文件并创建文件对象。

 open(file, mode='r', buffering=-1, encoding=None, errors=None,
     newline=None, closefd=True, opener=None)

file参数指定了被打开的文件名称。
mode参数指定了打开文件后的处理方式。
buffering参数指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表示缓冲区的大小。默认值是缓存模式。默认值是-1,表示二进制文件和非交互式文本文件以固定大小的块为缓存单位。
encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。
newline只适用于文本模式

如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。

在这里插入图片描述

f1 = open( 'file1.txt', 'r' )     # 以读模式打开文件,若文件不存在,抛出异常
f2 = open( 'file2.txt', 'w')      # 以写模式打开文件

当文件内容操作完之后,需要关闭文件对象,才能保证所做的修改都被保存到文件里,关闭后,将不能再写入文件。

f1.close()

打开文件时使用with语句

在实际开发中,读写文件应优先考虑使用上下文管理语句with,关键字with可以自动管理资源,不论因为什么原因(哪怕是代码引发了异常)跳出with块,总能保证文件被正确关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的上下文,常用于文件操作、数据库连接、网络连接、多线程与多进程同步时的锁对象管理等场合。
with语法结构:

with expression as target:
    with-bady

expression:用于制定一个表达式,可以是文件的open函数
target:用于指定一个变量,并且将expression的结果保存到该变量中。
with-bady:用于指定with语句体,其中可以是执行with语句后相关的一些操作语句。如果不想执行任何语句,可以使用pass语句代替。

s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n'

with open('sample.txt', 'w') as fp:    #默认使用cp936编码,可自动关闭文件,无需close命令
    fp.write(s)

with open('sample.txt') as fp:         #默认使用cp936编码,默认以‘r’的模式打开文件
    print(fp.read())

打开文件指定编码方式

在使用open函数打开文件时,默认使用cp936(GBK),当被打开的文件不是GBK编码时,将抛出异常。
解决方法一种是直接修改文件的编码。另一种是再打开文件时,直接指定打开文件的编码方式。

微软的CP936通常被视为等同GBK,连 IANA 也以“CP936”为“GBK”之别名。不过实际上 GBK 定义的字符比 CP936 多出95个字,其中包括了15个非汉字及80个汉字。

写入文件

python文件提供了write方法,可以向文件写入内容。格式如下:

file.write(string)
s = &#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值