文件的操作
- 文件的基本操作初识
- 利用python代码写一个软件,去操作文件
- 文件路径:path(绝对路径与相对路径)
- 打开方式:读 写 追加 读写 写读 ...
- 编码方式:utf-8 gbk gb2312
f1 = open('E:\学生信息表.txt',encoding='utf-8',mode='r')
content = f1.read()
print(content)
f1.close()
- 文件操作三部曲:
- 打开文件
- 对文件句柄进行相应的操作
- 关闭文件
- 报错原因:
- UnicodeDecodeError:文件存储时与文件打开时编码方式运用不一致
- 第二个问题(SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated):路径分隔符产生的问题:
- 解决方式:
r'C:\Users\Administrator\Desktop'
C:\\Users\Administrator\Desktop' #加一个转义字符('\')
- 解决方式:
- 利用python代码写一个软件,去操作文件
- 文件的操作读
- r
- r(读)有5种:read,read(n),readline,readlines,for循环读取,其中for循环与read比较重要也是一般常用的
- rb:操作的是非文本文件。图片,视频,音频
- rb模式不能用encoding
f = open('美女.jpg',mode='rb')
content = f.read()
print(content)
f.close()
- rb模式不能用encoding
- r
- 文件的操作写
w,wb,w+,w+b四种模式
#没有文件,创建文件,写入内容
#如果文件存在,先清空原文件内容,在写入新内容
# w = open('写文件.txt',encoding='utf-8',mode='w')
# w.write('随便写点东西吧')
# w.close()#wb 主要操作非文本类文件 f = open('美女.jpg',mode='rb') content = f.read() print(content) f.close() f1 = open('美女2.jpg',mode='wb') f1.write(content) f1.close()
- 文件操作的追加
a,a+b,a+,ab四种模式
#a 追加 没有文件创建文件,追加内容
f1 = open('文件的追加.txt',encoding='utf-8',mode='a')
content = f1.write('文件正在运行...')
f1.close()#a 有文件,在原文件追加内容 f1 = open('文件的追加.txt',encoding='utf-8',mode='a') content1 = f1.write('alex,太白金星,oldboy\n老谭') f1.close()
- 文件操作的其他内容
#读并追加
f1 = open('文件的读写.txt',encoding='utf-8',mode='r+')
content = f1.read()
print(content)
f1.write('是在是太无聊了')
f1.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('文件的读写.txt', encoding='utf-8')
print(f.tell())
content = f.read()
# print(content)
print(f.tell())
f.close()# seek 调整光标的位置 f = open('文件的读写.txt', encoding='utf-8') f.seek(9) content1 = f.read() print(content1) f.close() # flush 强制刷新 f = open('文件的其他功能', encoding='utf-8',mode='w') f.write('fdshdsjgsdlkjfdf') f.flush() f.close()
- 文件的改
- 文件操作改的流程:
1, 以读的模式打开原文件。
2,以写的模式创建一个新文件。
3,将原文件的内容读出来修改成新内容,写入新文件。
4,将原文件删除。
5,将新文件重命名成原文件。 具体代码:
'''
1.以读的模式打开原文件。
2.以写的模式创建一个新文件。
3.将原文件的内容读出来修改新内容,写入新文件。
4.将原文件删除
5.将新文件重命名成原文件
'''
#low版
# 1.以读的模式打开原文件。
# 2.以写的模式创建一个新文件。
with open('alex自述',encoding='utf-8',mode='r') as f1, open('alex自述.txt',encoding='utf-8',mode='w') as f2:
#3.将原文件的内容读出来修改新内容,写入新文件。
old_content = f1.read().strip()
new_content = old_content.replace('alex','sb')
f2.write(new_content)
# 4.将原文件删除
# # 5.将新文件重命名成原文件
import os
os.remove('alex自述')
os.rename('alex自述.txt','alex自述')#进阶版 # 1.以读的模式打开原文件。 # 2.以写的模式创建一个新文件。 with open('alex自述',encoding='utf-8',mode='r') as f1,\ open('alex自述.txt',encoding='utf-8',mode='w') as f2: #3.将原文件的内容读出来修改新内容,写入新文件。 for line in f1: new_line = line.replace('alex','sb') f2.write(new_line) # 4.将原文件删除 # # 5.将新文件重命名成原文件 import os os.remove('alex自述') os.rename('alex自述.txt','alex自述') #关于清空的问题 #关闭文件句柄,再次以w模式打开此文件时,才会清空
- 文件操作改的流程: