day 08

时光总嘲笑我的痴心妄想 提交于 2020-01-05 23:13:15

day 08

1.文件操作的初识:

f1 = open('d:\leilei.txt', encoding='utf-8',made='r')content = f1.read()print(content)f1.close()
  • 代码解释:

open 内置函数 ,open底层调用的是操作系统的接口。

f1,变量,f1,fh,file_handerler,f_h,文件句柄,对文件进行的任何操作,都通过文件句柄的方式

encoding:可以不写,不写参数,默认操作系统的默认编码

windows:gbk

linux:utf-8

mac:utf-8

f1.close()关闭文件句柄

  • 文件操作三部曲

    • 1.打开文件

    • 2.对文件句柄进行操作

    • 3.关闭文件

  • 路径分隔符产生的问题

    • 在路径前加 r

    • r'd:\leilei.txt'

文件操作的读

r,rb,r+,r+b四种模式

r:read()** read(n) resdline() readlines()

for***

rb:操作的是非文本的文件。图片,视频,音频

# read  全部读取 **f = open('文件的读’,encoding = 'utf=8')content = f.read()print(content)f.close​#read(n) 按照字符读取f = open('文件的读',encoding = 'utf-8')content = f.read(5)print(content)f.close​#readline()  按照行读取f = open('文件的读’,encoding = 'utf-8')print(f.readline())print(f.readline())print(f.readline())f.close​#readlines() 返回一个列表,其中的每个元素是源文件的一行f = open('文件的读',encoding = 'utf-8')l1 = f.readines()for i in l1:    print(line)print(l1)f.close()​#for 读取f = open('文件的读',encoding = 'utf-8')for line in f:    print(line)f.close​f = open('美女.jpg',mode='rb')content = f.readprint(content)f.close()

文件操作的写

w, wb, w+, w+b 四种模式

#w#没有文件,创建文件,写入内容f = open('文件的写', encoding = 'utf-8', mode = 'w')f.write('随便写一点')f.close()#文件存在,先清空文件内容,再写入新内容​#wbf1 = open('美女.jpg',modr = 'rb')content = f.read()f.closef1 = open('美女.jpg',modr = 'wb')f1.write(content)f1.close​​

文件操作的追加

# 没有文件创建文件,追加内容# f = open('文件的追加',encoding='utf-8',mode='a')# f.write('太白最帅....')# f.close()​# 有文件,在原文件的最后面追加内容。# f = open('文件的追加',encoding='utf-8',mode='a')# f.write('大壮,舒淇,b哥,雪飞')# f.close()

 

文件 操作的其他模式r+

# 读并追加  # 顺序不能错误。# f = open('文件的读写', encoding='utf-8', mode='r+')# content = f.read()# print(content)# f.write('人的一切痛苦,本质都是对自己无能的愤怒。')# f.close()​# 错误示例:# f = open('文件的读写', encoding='utf-8', mode='r+')# f.write('人的一切痛苦,,,本质都是对自己无能的愤怒,,,')# content = f.read()# print(content)# f.close()

文件操作的其他功能

总结:

三个大方向:

读,四种模式: r rb r+ r+b

写,四种模式 : w,wb, w+,w+b

追加 四种模式: a, ab, a+,a+b

相应的功能:对文件句柄的操作:read read(n) readline() readlines() write()

# tell 获取光标的位置 单位字节。# f = open('文件的读写', encoding='utf-8')# print(f.tell())# content = f.read()# # print(content)# print(f.tell())# f.close()​# seek 调整光标的位置# f = open('文件的读写', encoding='utf-8')# f.seek(7)# content = f.read()# print(content)# f.close()​# flush 强制刷新# f = open('文件的其他功能', encoding='utf-8',mode='w')# f.write('fdshdsjgsdlkjfdf')# f.flush()# f.close()

打开文件的另外一种方式

# 优点1: 不用手动关闭文件句柄# with open('文件的读',encoding='utf-8') as f1:#     print(f1.read())​# 优点2:with open('文件的读', encoding='utf-8') as f1,\        open('文件的写', encoding='utf-8', mode='w')as f2:    print(f1.read())    f2.write('hfdsjkghkajhsdjg')​# 缺点:待续。

文件操作的改

  • 文件操作改的流程: 1, 以读的模式打开原文件。 2,以写的模式创建一个新文件。 3,将原文件的内容读出来修改成新内容,写入新文件。 4,将原文件删除。 5,将新文件重命名成原文件。

  • 具体代码:

​# low版# import os# # 1, 以读的模式打开原文件。# # 2,以写的模式创建一个新文件。# with open('alex自述',encoding='utf-8') as f1,\#     open('alex自述.bak',encoding='utf-8',mode='w') as f2:# # 3,将原文件的内容读出来修改成新内容,写入新文件。#     old_content = f1.read()#     new_content = old_content.replace('alex', 'SB')#     f2.write(new_content)# os.remove('alex自述')# os.rename('alex自述.bak','alex自述')​​# 进阶版:import os# 1, 以读的模式打开原文件。# 2,以写的模式创建一个新文件。with open('alex自述',encoding='utf-8') as f1,\    open('alex自述.bak',encoding='utf-8',mode='w') as f2:# 3,将原文件的内容读出来修改成新内容,写入新文件。    for line in f1:        # 第一次循环 SB是老男孩python发起人,创建人。        new_line = line.replace('SB', 'alex')        f2.write(new_line)os.remove('alex自述')os.rename('alex自述.bak','alex自述')

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!