Python文件操作注意事项

今天继续给大家介绍Python相关知识,本文主要内容是Python文件操作注意事项。

一、文件操作流程注意事项

在文章Python文件操作详解(一)中,我们讲解过,文件操作的流程是打开文件——操作文件——关闭文件。如果我们在操作完文件后,没有关闭文件,那么该文件就会被该程序所占用(关于文件占用可参考本文第三章)。但是如果Python程序被关闭,那么Python也会自动关闭我们打开的文件。
为了解决这一问题,我们可以使用with关键字,with关键字可以帮助我们自动的关闭文件,并且当文件操作失败(有时文件因为被别的程序占用、权限问题等,因此会打开失败)或者使用结束后,自动关闭文件。with关键字使用示例如下:

with open("test.txt","r+") as f:
	【处理文件操作】

在上述示例中,我们将open()函数放在with关键字后面,最后的f是执行open()函数后,打开的文件句柄。注意上述语句最后面的冒号,以及后续处理文件操作中需要的缩进。
注意,我们尽量不要把打开文件的操作放到try except异常处理语句中,因为try except语句当文件处理出现异常后,不会自动关闭文件。

二、文件读取时的编码问题

对于文本方式打开的文件,会存在一个固定的字符编码。例如,我们在Windows操作系统的记事本,就可以在另存为操作时指定文件的编码,如下所示:
在这里插入图片描述
我们使用文本方式打开不同编码类型的文件,就必须指定文件的编码类型,常见的编码类型有gbk和utf-8,打开这两种编码类型的文件需要在open函数中指定encoding参数,如下所示:

f=open("test.txt","r+",encoding="utf-8")
f=open("test.txt","r+",encoding="gbk")

如果打开的文件存在中文,那么选择错误的编码方式,不会在open()函数中报错,但是在对文件操作时有可能出现错误,如下所示:
在这里插入图片描述
之所以出现上述错误,就是由于指定的GBK编码不能对utf-8的部分编码进行解码导致的。
然而,由于gbk和utf-8在英文和数字上的支持,因此我们使用utf-8和gbk编码时打开不同的文件也会操作正常,如下所示:
在这里插入图片描述

三、文件操作与操作系统

实际上,尽管我们使用Python,可以很轻松的操作文件,但是其中有很多文件操作的细节,都是Python自动的帮助我们完成了,因为这涉及到很多文件系统、操作系统的知识。事实上,Python对文件的操作,在操作系统看来,是对文件系统的操作。Python对于文件的操作很大程度上要依靠操作系统来执行。
例如,我们在Python中,使用open()函数打开一个文件后,在操作系统上类似一个“占用”,直至我们使用close()函数解除对该文件的占用(或者采用其他方式解除)。在对文件的占用期间,其他程序不能对该文件进行删除。
此外,Python中文件句柄的概念,也是继承了操作系统的相关文件句柄操作。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值