python文件操作
文件操作:读(r) **********二进制文件使用'rb'*********************
(1)全部打印
f = open('a.txt' ,mode='r',encoding='utf-8') #以只读模式打a.txt
data = f.read() #读取全部文件内容
print(date) #打印读取内容
f.close() #关闭
(2)打印指定字节
f = open('a.txt' ,mode='r',encoding='utf-8')
data = f.read(3) #可以指定读取的文件字节
print(date)
f.close()
(3)按行打印
f = open('a.txt' ,mode='r',encoding='utf-8')
data = f.readline() #readline()读取每次只读取一行,注意点:readline()读取出来的数据在后面都有一个\n一般与strip连用
print(data)
f.close()
(4)全部打印以列表的形式
f = open('a.txt' ,mode='r',encoding='utf-8')
data = f.readlines() #readlines结果会形成一个列表
print(data)
f.close()
####################################以上方法如果文件过大会消耗太多的内存############################################
(5)for循环
f = open('a.txt' ,mode='r',encoding='utf-8')
for i in f :
print(i.strip()) #读取一行打印一行 strip去除\n
f.close()
文件操作:写(w) **********二进制文件使用'wb'*********************
**************如果文件不存在,利用w模式操作文件,那么它会先创建文件,然后写入内容,如果已存在会清空*******************************************
f = open('b.txt',mode='w',encoding='utf-8')
f.write('你猜')
f.close()
文件操作:追加(a)
如果文件存在,会将新的内容将会被写入到已有内容之后 如果文件不存在会先创建文件
f = open('b.txt',mode='a',encoding='utf-8')
f.write('你猜') f.write('\n增加点东西')可以使用\n方式 追加到下一行
f.close()
'+'模式
r+, 读写【可读,可写】
w+,写读【可写,可读】
a+, 写读【可写,可读】
read(n)
1. 文件打开方式为文本模式时,代表读取n个字符
2. 文件打开方式为b模式时,代表读取n个字节
seek()
seek(n)光标移动到n位置,注意: 移动单位是byte,所有如果是utf-8的中文部分要是3的倍数
通常我们使用seek都是移动到开头或者结尾
移动到开头:seek(0)
移动到结尾:seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾
f = open("a.txt", mode="r+", encoding="utf-8")
f.seek(0) # 光标移动到开头
content = f.read() # 读取内容, 此时光标移动到结尾
print(content)
f.seek(0) # 再次将光标移动到开头
f.seek(0, 2) # 将光标移动到结尾
content2 = f.read() # 读取内容. 什么都没有
print(content2)
f.seek(0) # 移动到开头
f.write("张国荣") # 写入信息. 此时光标在9 中文3 * 3个 = 9
f.flush()
f.close()
tell()
f = open("小娃娃", mode="r+", encoding="utf-8")
f.seek(0) # 光标移动到开头
content = f.read() # 读取内容, 此时光标移动到结尾
print(content)
f.seek(0) # 再次将光标移动到开头
f.seek(0, 2) # 将光标移动到结尾
content2 = f.read() # 读取内容. 什么都没有
print(content2)
f.seek(0) # 移动到开头
f.write("张国荣") # 写入信息. 此时光标在9 中⽂文3 * 3个 = 9
print(f.tell()) # 光标位置9
f.flush()
f.close()
python内置函数打开文件
with open() as .... 的形式 好处是自动关闭文件句柄,可以打开多个文件用逗号隔开 坏处是自动关闭文件句柄时间不固定
文件修改
import os 导入系统模块
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
for line in read_f:
line=line.replace('alex','SB')
write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

浙公网安备 33010602011771号