文件与文件系统

一:File(文件)
1:读文件:
(1)要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符。
注:标示符’r’表示读,这样,我们就成功地打开了一个文件。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在。
(2)如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示。
注:(1)调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
(2)如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便。

(3)最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。
(4)由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现。
注:但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法。这和前面的try … finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。
2:二进制文件:前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用’rb’模式打开文件即可。
3:字符编码:要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数。
4:遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略。
二:文件系统
1:Python内置的os模块也可以直接调用操作系统提供的接口函数。
在这里插入图片描述
2:如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统。要获取详细的系统信息,可以调用uname()函数。
3:环境变量:在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看。要获取某个环境变量的值,可以调用os.environ.get(‘key’)。
在这里插入图片描述
在这里插入图片描述
4:操作文件和目录:
(1):操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中。
(2):把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符。在Linux/Unix/Mac下,os.path.join()返回这样的字符串。
在这里插入图片描述
(3)要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名。
在这里插入图片描述
(4)os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便。
在这里插入图片描述
注:这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。
(5)shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。
注:要列出所有的.py文件,也只需一行代码。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值