對於計算機而言不管是文件存儲 / 網絡傳輸數據本質上都是:二進制(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)