py--文件管理

本文详细介绍了Python中文件的读写原理、操作步骤、文件打开模式及其示例,包括r+、w+、a+的用法。还讨论了文件读取相关方法如read、write、writelines等,并探讨了文件的复制、缓冲区管理和linecache模块的应用。
摘要由CSDN通过智能技术生成

目录

 

1、文件读写原理和操作步骤

1.1、文件读写原理

1.2、文件的操作步骤

1.3、文件打开模式

1.4、文件操作模式

1.41、r+示例

1.42、w+示例

1.43、a+的示例

1.5、文件读取相关方法

1.51、读取文件的相关方法

1.6、文件的写入操作

1.61、f.write(string)

1.62、fp.writelines()

1.7、文件其他操作

1.8、文件的复制(wb,rb)

1.9、linecache模块


1、文件读写原理和操作步骤

1.1、文件读写原理

文件读写就是一种常见的io操作,python也应该是封装操作系统的底层接口,直接提供了文件读写相关的操作方法,读写文件时需要请求操作系统打开一个对象,(文件描述符:简写为jd)这就是我们在程序中要操作的文件对象

1.2、文件的操作步骤

  1. 打开文件,获取文件描述符
  2. 操作文件描述符,---读/写
  3. 关闭文件

注意事项:

  • 文件读写操作完成后,要及时的关闭文件。

原因:

因为,文件对象会占用系统的资源,另一方面,操作系统对同一时间能打开的文件描述符的数量是有限制的,在linux系统上通过ulimit-n 来查看这个显示的数量。如果不及时的关闭文件,可能会造成句柄占用,数据丢失。因为当将数据写入文件时,操作系统不会立即把数写入到磁盘中,而是先把数据存入到内存缓冲区异步写入磁盘。当调用close方法的时候,操作系统会保证把没有写入磁盘的数据全部写入到磁盘中去,否则丢失数据。

1.3、文件打开模式

1、open方式打开

语法:

open(file,mode="r",encoding=None)
  • file:文件名称,如果代码和所在的文件是同一个目录下,则不用重写书写路径,否则如果不在同一个路径下,需要写上具体的路径。
  • mode:决定了打开文件的模式,默认是read模式
  • encoding:如果不写则默认为gbk模式,也就是对应txt的ansi模式。如果写明utf8,则txt文件中保存也必须是utf8的模式。

示例:

方法1:用open方法打开,需要关闭文件。

#coding=utf-8

fp=open("e://a.txt","r")
str=fp.read()
print(str)

#关闭文件
fp.close()

方法2:用with...open方式打开

with方式打开文件:会默认关闭文件,这种方式比较推荐。

#coding=utf-8

with open ("e:\\a.txt","r",encoding="utf-8") as fp:
    for line in fp:
        print(line)

注意事项:

1、文件的书写模式为:“e:\\a.txt” 或者是r"e:\a.txt"

2、如果读取utf-8的模式下,有utff类的字样,需要安装一个Notepad++,打开文件,将编码格式转换 为:utf-8无Bom格式

问题1:当我不知道该文件的编码是什么编码时,比方用mac本打开,则怎么判断???

>>> fp=open("e:\\a.txt","rb")
>>> content=fp.read()
>>> type(content)
<class 'bytes'>
>>> import chardet
>>> chardet.detect(content)
{'encoding': 'UTF-8-SIG', 'confidence': 1.0, 'language': ''}
>>>

问题2:当读取文件时,最终是用什么格式来读取的呢???

>>> fp=open("e:\\a.txt",encoding="utf-8")
>>> content=fp.read()
>>> type(content)
<class 'str'>
>>>

这是因为:bytes类型只用在内存中或者文件存储的时候,当读取文件时,就自动转换为str类型了。

1.4、文件操作模式

  • r: 只读模式,并将文件指针指向文件头, 如果文件不存在,则会报错。
  • w:只写模式,将文件指针指向文件头,如果文件存在则将内容清空,如果文件不存在,则

创建

  • a:只以追加可写的模式打开文件,并将文件指针指向文件的尾端;如果文件不存在则创建
  • r+:在r的基础上增加了可写功能,会覆盖当前文件指针所在的位置的字符。文件的指针放在

文件的开头

  • w+:在w的基础上增加可读功能。在打开文件的时候,就先将文件内容清空 ,如果该文件不

存在,则创建新文件

  • a+:在a的基础上增加了可读功能。只能写在文件末尾,文件打开时,是一个追加模式,如

果该文件不存在,则创建新文件用于读写。

  • b:读写二进制数,需要配合使用&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值