python文件操作:r、w、a、r+、w+、a+和b模式

简介: python文件操作:r、w、a、r+、w+、a+和b模式

对文件操作的基本步骤

f=open('a.txt','r',encoding='utf-8')
data=f.read()
print(data)
f.close()

文件的打开和关闭使用open()、close()函数,文件刚打开时光标在最前面。

open()函数的第一个参数为要打开的文件名,默认路径为这个脚本所在路径;第二个参数为打开模式,第三个参数为编码格式。

文件的基本打开模式有r、w、a、r+、w+、a+,如果省略打开模式默认为r只读,各打开模式的区别如下:

image.png

f.readable()  判断文件是否可读,返回True或False

f.readline()  每次读取一行,当读取到一行的末尾时再执行readline读取内容为空

f.readlines()  将文件所有内容读出放到一个列表,每行为一个元素,类型为字符串,例如['hello\n', 'hi\n', 'nice\n']

如果在文件打开时,指定newline=‘’,则换行的结果显示为/r/n(windows平台的换行符为\r\n,unix和linux平台的换行符为\n)

f1=open('b.txt','r',encoding='utf-8')
f2=open('b.txt','r',encoding='utf-8',newline='')
print(f1.readlines())
print(f2.readlines())
f1.close()
f2.close()
#执行结果为
['123\n', 'abc']
['123\r\n', 'abc']

f.writable() 判断文件是否可写,返回True或False

f.write() 将所有内容作为一个整体写入文件

f.writelines() 将列表内容按行写入文件,f.writelines(['hello\n', 'hi\n', 'nice\n'])

f.closed 判断文件是否关闭,返回True或False,注意该方法没有括号

f.encoding 返回文件打开时候的编码,注意该方法没有括号

f.flush() 将内容中的内容刷到硬盘

直接使用open函数打开文件时,还需要手动关闭close文件,否则文件会一直占据内存。使用with open() as f打开文件则无需手动关闭,使用例子如下。

def file_operation():
    with open('a.txt','a+',encoding='utf-8') as f:
      f.write('hello')
    print(f.read())

文件默认是以t即文本模式进行处理,

b为二进制模式,可以处理除了文本之外的图片、音频、视频等格式的文件,还可以跨平台处理

f=open('test11.py','rb')------以b的方式打开文件时不能指定编码

data=f.read()

print(data.decode('utf-8'))------读取之后以utf-8格式对二进制进行解码

 

f=open('test22.py','wb')

f.write(bytes('1111\n',encoding='utf-8'))--------bytes函数将指定内容以uft-8格式编码为二进制
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078
f.write('22222\n'.encode('utf-8'))----------encode直接将指定内容以uft-8格式编码为二进制

文件内光标的移动

除去read( )是以字符进行读取的,其他光标的移动都是以字节为单位进行的,如seek、tell、truncate

read(3)表示读取3个字符

seek(3)表示光标向后移动3个字节,默认是从光标在文件最前面开始,也即seek(3,0)

光标的相对移动需要在打开时指定b模式,seek的第二个参数表示移动方式,0为默认方式,即从文件最开头移动,1是相对上一次移动,2是从文件末尾移动

seek(3,1) 表示从光标上一次所在的位置向后移动3个字节

seek(-3,2)表示从文件末尾开始向前移动

truncate(3)表示截取文件前3个字节,必须以可写的方式打开,w和w+除外

tell( )表示显示当前光标所在的字节

相关文章
|
7天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
97 70
|
2月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
1月前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
2月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
2月前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
62 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
3月前
|
算法 数据挖掘 Python
Python中的拟合技术:揭示数据背后的模式
Python中的拟合技术:揭示数据背后的模式
45 0
Python中的拟合技术:揭示数据背后的模式
|
1月前
|
Python
探索Python中的异步编程模式
【10月更文挑战第29天】在编程世界中,时间就是效率。Python的异步编程模式,就像是给程序装上了翅膀,让任务并行处理不再是梦想。本文将带你了解如何在Python中实现异步编程,解锁高效代码的秘密。
26 0
|
3月前
|
存储 Python
Python文件操作
Python文件操作
|
3月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
34 1
|
3月前
|
IDE JavaScript Java
Processing介绍及几个python模式下的案例
该文章介绍了Processing这一开源编程语言和环境,主要用于视觉艺术和设计领域,并提供了Python模式下的编程案例。
62 5