对于计算机而言不管是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制; QQ/微信聊天发送的表情/文字/语言/视频 也所有都是二进制。微信
进制:网络
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
1 | 1 | 1 | 1 |
10 | 2 | 2 | 2 |
11 | 3 | 3 | 3 |
100 | 4 | 4 | 4 |
101 | 5 | 5 | 5 |
110 | 6 | 6 | 6 |
111 | 7 | 7 | 7 |
1000 | 10 | 8 | 8 |
1001 | 11 | 9 | 9 |
1010 | 12 | 10 | a |
1011 | 13 | 11 | b |
1100 | 14 | 12 | c |
1101 | 15 | 13 | d |
1110 | 16 | 14 | e |
1111 | 17 | 15 | f |
10000 | 20 | 16 | 10 |
# 打开文件 f = open('要打开的文件路径',mode='r/w/a',encoding='文件原来写入时定义的编码') # 操做 data = f.read() # 读取文件的内容到内存(所有) f.write('要写入的内容') # 关闭文件 f.close()
# 示例一 : 通常用于文字写入。 f = open('a.txt',mode='w',encoding='utf-8') # a. 将 “你好” 根据encoding指定的编码转换成: # “你好” --> 10001000 10001000 10001000 10001000 10001000 10001000 # b. 将二进制写入到文件中。 f.write('你好') # w打开文件,则write传入字符串 f.close() # 示例二:通常用于图片/音频/视频/未知编码 f = open('a.txt',mode='wb') # f.write('你好') # wb打开文件,则write传入的是二进制,但‘你好’是字符串不是二进制,须要转换后再写入。 # 1. 把要写入的字符串转换成二进制 data = "我好困" content = data.encode('utf-8') # 将字符串按照utf-8编码转换成二进制 # 2. 再将二进制写到文件中 f.write(content) # wb打开文件,则write传入的是 二进制 f.close()
1.文件操做编码
seek(光标字节位置),不管模式是否带b,都是按照字节进行处理。code
obj = open('a.txt',mode='r',encoding='utf-8') obj.seek(3) # 跳转到指定字节位置 data = obj.read() obj.close() print(data) obj = open('a.txt',mode='rb') obj.seek(3) # 跳转到指定字节位置 data = obj.read() obj.close() print(data)
tell(), 获取光标当前所在的字节位置视频
obj = open('a.txt',mode='rb') # obj.seek(3) # 跳转到指定字节位置 obj.read() data = obj.tell() print(data) obj.close()
flush,强制将内存中的数据写入到硬盘图片
v = open('a.txt',mode='a',encoding='utf-8') while True: val = input('请输入:') v.write(val) v.flush() v.close()
2.关闭文件操做内存
文艺青年utf-8
v = open('a.txt',mode='a',encoding='utf-8') v.close()
二逼字符串
with open('a.txt',mode='a',encoding='utf-8') as v: data = v.read() # 缩进中的代码执行完毕后,自动关闭文件
3.文件内容的修改input
with open('a.txt',mode='r',encoding='utf-8') as f1: data = f1.read() new_data = data.replace('飞洒','666') with open('a.txt',mode='w',encoding='utf-8') as f1: data = f1.write(new_data)
大文件修改
f1 = open('a.txt',mode='r',encoding='utf-8') f2 = open('b.txt',mode='w',encoding='utf-8') for line in f1: new_line = line.replace('阿斯','死啊') f2.write(new_line) f1.close() f2.close()
with open('a.txt',mode='r',encoding='utf-8') as f1, open('c.txt',mode='w',encoding='utf-8') as f2: for line in f1: new_line = line.replace('阿斯', '死啊') f2.write(new_line)