Python-04 基础语法-文件操作

1 Python文件操作

文件打开

f = open("test",encoding="utf-8").read()
#打开文件读取test文件中的全部内容

注意:该文件要存在

open()方法的完整写法以及参数说明:

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):

参数解释:

参数 含义
file 必需,文件路径(相对或者绝对路径)
mode 可选,文件打开模式
buffering 设置缓冲
encoding 一般使用utf8
errors 报错级别
newline 区分换行符
closefd 传入的file参数类型

mode参数解释

mode类型 含义
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
b 二进制模式
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
wb 以二进制格式打开一个文件只用于写入。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件读

f = open("test","r",encoding="utf-8")# r代表只能读
#f对象表示一个文件句柄,就是相当于一个指针
data =f.read();
print(data)

注意:该文件要存在,不存在则会报错

f = open("test","r",encoding="utf-8")
print(f.readlines())
# 读取文件成为一个列表,每行作为一个元素

文件写

​ 在对文件进行写的时候,如果写入的文件不存在,那么就会自动创建该新文件.

f = open("test2","w",encoding="utf-8")
f.write("我喜欢你")
#注意,此时不能够读取文件,调用read()方法会报错

文件读写

#打开一个文件用于读写。文件指针将会放在文件的开头。
f = open("test","r+",encoding="utf-8")
print(f.readline())
f.write("哈哈哈")
#查看文件,可以看到哈哈哈被写进文件

文件写读(不常用)

​ 文件写读模式:如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

f = open("test2","w+",encoding="utf-8")
f.write("哈哈哈")

文件追加

​ 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

f = open("test2","a+",encoding="utf-8")
f.write("ppp")
f.flush()#刷入硬盘

二进制文件读

一般二进制文件用于网络传输或者用于读取视频文件

f = open("test","rb")
print(f.readline())
# 结果模式:>>>b'Oh, yesterday when I was young\r\n'

二进制文件写

在进行二进制文件写入的时候,如果写入一个字符串,那么需要将字符串转化为字节类型,字符串不转码是无法写入文件的.

f = open("test","wb")
f.write("你好".encode())

注意:进行二进制文件读写操作的时候,不要指定encoding,该文件会以二进制进行编码

文件常用方法

方法名 含义
file.tell() 打印指针位置,按字符计数统计
file.seek(0) 指针回到指定未知,0代表回到文件初始位置
file.encoding 打印文件的编码
file.errors 处理异常
file.name 打印文件名称
file.seekable 判断光标是否可以移动
file.flush() 将缓冲区文件刷新到硬盘
file.close() 关闭文件,关闭后不能读写
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size]) 读取整行
file.write(str) 将字符串写入文件,返回的是写入的字符长度。
file.writelines(list) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

进度条打印

使用flush缓存实时刷新

import  sys,time

#打印进度条
for i in range(10):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.5)

打印文件指定行

小文件操作

for index,line in enumerate(f.readlines()):
		prin(line.strip())
		if index==5:
			print("----")
			continue

大文件操作

#迭代器、边读取边写入,缓冲区保留一行
		count=0
		for line in f:
			if count==9:
				print(line)
				count+=1
				continue
			print(line)

posted on 2021-08-16 18:51  liqiangbk  阅读(45)  评论(0编辑  收藏  举报

导航