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

Posted python学习者0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python文件操作:rwar+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只读,各打开模式的区别如下:

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( )表示显示当前光标所在的字节

Python-复习-文件操作-21

# 文件处理
# 打开文件
#open(‘路径‘,‘打开方式‘,‘指定编码方式‘)
# 打开方式 r w a r+ w+ a+ b
#r+ 打开文件直接写 和读完再写
# 编码方式 —— utf-8
# 操作文件
# 读
# read 一次性读
# readlines 一次性读
# readline 一行一行读
#不知道在哪儿结束
#视频 图片 rb bytes 按照字节读
# for循环 —— 最好!!!
# 写
# write
# 光标 —— 文件指针
#seek _ 指定光标移动到某个位置
#tell _ 获取光标当前的位置
#truncate _ 截取文件
# 关闭文件
#close

以上是关于python文件操作:rwar+w+a+和b模式的主要内容,如果未能解决你的问题,请参考以下文章

Python-复习-文件操作-21

C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析

python IO文件处理

文件操作

python:open/文件操作

Python基本操作之文件操作