Python文件操作

Posted

tags:

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

 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。

读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

文件操作流程

1 打开文件,得到文件句柄并赋值给一个变量。

2 通过句柄对文件操作

3 关闭文件

测试文件:

 1 他多想是棵小草
 2 他多想是棵小草,染绿那荒郊野外
 3 他多想是只飞雁,闯翻那滔滔云海
 4 哪怕是野火焚烧,哪怕是雷轰电闪
 5 也落个逍遥自在,也落个欢心爽快
 6 他多想是棵小草,染绿那荒郊野外
 7 他多想是只飞雁,闯翻那滔滔云海
 8 哪怕是野火焚烧,哪怕是雷轰电闪
 9 也落个逍遥自在,也落个欢心爽快
10 蹉跎了岁月,伤透了情怀
11 为什么,为什么,偏有这样的安排?

基本操作

读文档

f= open(‘banished.txt‘,encoding="utf-8")#通过open函数打开一个文件,返回文件句柄
print(f.read())#读取文件内容
f.close()#关闭文件

技术分享

 

 以上为读出来的内容,read()函数会把文件内的内容一次性全部读出来,如果读取两次会有什么效果呢?

f = open(‘banished.txt‘,‘r‘,encoding="utf-8")
data1 = f.read()
data2 = f.read()
print(data1)
print(‘---------------%s ‘% data2)
f.close()

 技术分享

 重新读了一次但是并没有打印内容。原来当我们对文件操作的时候,文件内部会有一个文件指针来定位当前位置,初始位置1按字节内容移动。read()方法会把内容全部读出来并且把文件指针移动到末尾,这个时候在用read()方法在去读内容发现没有内容可以读就返回空。

 

写文档

‘w’ 模式写文件会创建一个文件,文件原来有内容会被覆盖。用这个模式打开后的文件不能用read()方法读文件。

 banished1.txt 文档内容

# Author:zhang
他多想是棵小草
他多想是棵小草,染绿那荒郊野外
他多想是只飞雁,闯翻那滔滔云海
哪怕是野火焚烧,哪怕是雷轰电闪
也落个逍遥自在,也落个欢心爽快
他多想是棵小草,染绿那荒郊野外
他多想是只飞雁,闯翻那滔滔云海
哪怕是野火焚烧,哪怕是雷轰电闪
也落个逍遥自在,也落个欢心爽快
蹉跎了岁月,伤透了情怀
为什么,为什么,偏有这样的安排?
f = open(‘banished1.txt‘,‘w‘,encoding=‘utf-8‘)
f.write(‘老西游记配曲‘)
f.close()

 执行写操作后

老西游记配曲

 读和写一样会偏移文件指针

f = open(‘banished1.txt‘,‘w‘,encoding=‘utf-8‘)
f.write(‘老西游记配曲\\n‘)#内容换行
f.write(‘很经典的配乐‘)
f.close()

 写完后的内容

老西游记配曲
很经典的配乐

 ‘a’ 文档追加 这个模式不会覆盖原文件。

f = open(‘banished1.txt‘,‘a‘,encoding=‘utf-8‘)
f.write(‘\\n许镜清老师作品‘)
f.close()

  写完后的内容

老西游记配曲
很经典的配乐
许镜清老师作品

 新内容已经追加到最后。

 

 

 

 

 

参考文档:文件读写 --- 廖雪峰Python3

Python文件处理之文件指针(四)

 

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

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

常用python日期日志获取内容循环的代码片段

VSCode自定义代码片段——git命令操作一个完整流程

使用 Python 代码片段编写 LaTeX 文档

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程