Python文件和目录操作

Posted

tags:

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

本章内容

  1. open
  2. 内置函数
  3. with语句

一、open

  open函数是我们在文件操作中经常用到的一个python内置函数

1 f = open(file.txt,encoding="utf-8")
2 data = f.read()
3 print(data)
4 f.close()

 

  PS:最后一定要调用close()来把打开的文件关闭

  我们通过源码来看看有哪些参数

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

  上述引用中,我们只需要注意file、mode、encoding就可以了,因为这三个是我们常用的也是必用的,对于其他的参数我并不了解,因为一般没用过。

  file:文件名;mode:打开文件的模式;encoding:编码方式

  打开文件的模式有:

  r,只读模式(PS:只可写读不可写

  w,只写模式(PS:只可写不可读,该模式如果文件存在就清空里面所有内容,如果不存在就会自动创建

  a,追加模式(PS:只可写,并且写只能追加到最后,文件如果不存在参考 ‘ w ‘ 模式)

  +,可同时读写

    r+,可读写文件(PS:可读,可写,可追加,如果文件不存在就报错)

    w+,可读写文件(PS:相当于为 w 模式加上了读的功能,)

    a+,同 a

  b,表示以二进制的模式进行处理(PS:Linux可忽略,Windows处理二进制文件时需标注)

    rb,同r(PS:因为是以二进制的方式,所以encoding参数就不能用了,用了会报错)

    wb,同w(PS:Windows下写的时候需要标注,第一种就是直接在字符串前加b,第二种就是用bytes将数据转换成bytes类型。)

    ab,同a(PS:需要标注)

  U,表示在读取时,可以将\\r \\n \\r\\n 自动转换成 \\n (与r或r+模式同时使用)

    在python3.x中这个方法已经废弃了,所以不说了。

二、open中的内置函数

 1 #with open(‘file.txt‘,‘r+‘,encoding="utf-8") as f:
 2 
 3 f.close()    #关闭文件
 4 
 5 f.fileno()    #返回一个文件描述符
 6 
 7 f.isatty()    #如果文件连接(与终端设备相关联)到tty(类似)设备,就返回True,否则False
 8 
 9 f.read()      #用于读取文件内容,但是此方法不一定能完全读出来。官方文档如下:
10 """
11 Only makes one system call, so less data may be returned than requested.
12 In non-blocking mode, returns None if no data is available.
13 Return an empty bytes object at EOF.
14 """
15 
16 #大致意思就是说该方法只进行一个系统调用,因此可以返回的数据比请求的要少。在非阻塞模式下,如果没有可用的数据,则返回None,即一个空字节对象。
17 
18 f.readable()      #可以判断当前文件打开模式是否可读,是返回True,否则else
19 
20 f.seek()            #用来移动文件指针
21 
22 f.seekable()      #指针是否可操作
23 
24 f.tell()            #获取指针位置
25 
26 f.truncate()    #截取数据,仅保留指定之前数据
27 
28 f.writable()     #是否可写
29 
30 f.write()       #

  PS:在进行操作时注意文件句柄的位置

 

三、with语句

  为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open(‘file.txt‘,‘r+‘) as f:

    pass

  当with代码块执行完毕时,内部会自动关闭释放文件资源。

  在2.7以上的版本,支持同时对多个文件上下文进行管理,即:

with open(‘file1.txt‘,‘r+‘) as f1,open(‘file2.txt‘,‘r+‘) as f2:

    pass

 

  写这篇博客中有遇到一些问题,我会将这些问题写进这篇博客中:python所遇问题合集

 

以上是关于Python文件和目录操作的主要内容,如果未能解决你的问题,请参考以下文章

python常用代码

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

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

python小知识片段

python小知识片段