日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

day8

發(fā)布時(shí)間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day8 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

# DAY8

## 復(fù)習(xí)

```
# 1.編碼
'''
ASCII -> Python -> Unicode
py2: 默認(rèn)ASCII | py3: 默認(rèn)UTF-8
中文:GBK,兼容ASCII,只存在英文、中文與計(jì)算機(jī)識(shí)別的標(biāo)識(shí)符有對(duì)應(yīng)關(guān)系
編碼表:人識(shí)別的標(biāo)識(shí)符 與 計(jì)算機(jī)識(shí)別的標(biāo)識(shí)符 形成的對(duì)應(yīng)關(guān)系

各編碼表中字符(人能識(shí)別)所占字節(jié)(將字符轉(zhuǎn)為為二進(jìn)制的中間產(chǎn)物)數(shù)
一個(gè)字節(jié) = 8個(gè)二進(jìn)制位 (1個(gè)十六進(jìn)制位 = 4個(gè)二進(jìn)制位)
ASCII:1~2個(gè)字節(jié)
Unicode:2個(gè)字節(jié)
GBK:1~2個(gè)字節(jié)
UTF-8:Unicode編碼的一種體現(xiàn)方式,1~6個(gè)字節(jié)

Unicode定長(zhǎng)獲取信息快速,UTF-8變長(zhǎng)傳輸速度快
'''


# 2.三種字符串
'''
r'原義 字\n符串'
u'最普通的字符串'

# 二進(jìn)制字符串:用來傳輸?shù)淖址?br /># 1. 是字符串(文本字符)的二進(jìn)制體現(xiàn),(如視頻資源可以轉(zhuǎn)化為二進(jìn)制字符串,不翻轉(zhuǎn)為視頻資源,則就是普通字符串)
# 2. 二進(jìn)制字符串按字節(jié)為最小存儲(chǔ)單位存放數(shù)據(jù)
# 3. 所有數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制字符串都應(yīng)該用utf-8進(jìn)行編碼嗎?
# -- 只是文本數(shù)據(jù)
# -- 視頻、音頻、圖像等此類數(shù)據(jù)也有編碼解碼過程,采用的編碼表不是utf-8,不用關(guān)系編碼表

'''
s = 'ABC123'
for v in s:
# if v.isupper():
# print(v)
# if 'A' <= v <= 'Z': # 字符串比較大小的前提依據(jù)就是ASCII
# print(v)
if 65 <= ord(v) <= 90:
print(v)


# 字符與ASCII之間轉(zhuǎn)化
res = ord('A')
print(res)
res = chr(65)
print(res)
# ascii:DBCS雙字節(jié)存儲(chǔ)可以存放中文等一些文字與字符,可以完成字符與整數(shù)(ascii表中整數(shù))的轉(zhuǎn)化
print(ord('⑩'), chr(9323))

# 3.文件基礎(chǔ)讀寫
'''
1.打開文件
r = open('a.txt', 'r', encoding='utf-8')
w = open('a.txt', 'w', encoding='utf-8')
2.操作
r.read()
w.write('msg')
3.關(guān)閉文件
r.close()
w.close()
'''
```

## with open:將文件的釋放交給with管理

```python
with open('文件', '模式', encoding='utf-8') as f:
# 操作
pass
主模式
r: 讀
w: 寫(無創(chuàng)建,有清空)
a: 追加(有創(chuàng)建的功能)
從模式
t: 文本操作(默認(rèn)模式) r=>rt w=>wt a=>at
b: 非文本文件必須采用二進(jìn)制模式來處理
+: 可讀可寫
r+: 不會(huì)創(chuàng)建文件的可讀可寫 | w+:創(chuàng)建清空文件的可讀可寫 | a+:創(chuàng)建不清空文件(追加)的可讀可寫

x:
U:
```

## 文件模式(w,r,a)

## 主模式:w

```python
-w模式

# w:沒有文件新建文件,有文件就清空文件
w = open('1.txt', 'w', encoding='utf-8')
w.write('000\n')
# 在寫入大量數(shù)據(jù),要及時(shí)處理內(nèi)存空間,不然內(nèi)存可能溢出導(dǎo)致數(shù)據(jù)丟失
w.flush()
w.write('111\n')
# 最后一次flush()操作可以省略
w.flush()
# 一次性寫入多行
w.writelines(['222\n', '333\n'])
w.write('444')
# w.newlines
w.write('555')
# 1.將內(nèi)存的的數(shù)據(jù)刷新到硬盤中;2.釋放文件資源
w.close()
```

## 模式r

```python
讀文件
with open(file,'r',encoding='utf-8')as f:
data=read()可寫字節(jié),3bytes字節(jié)對(duì)應(yīng)一個(gè)中文字符,1bytes對(duì)應(yīng)一個(gè)英文或者一個(gè)阿拉伯?dāng)?shù)字
```

## a模式

```python
追加(創(chuàng)建功能)
with open(file,'r',encoding='utf-8')as f:
f.write('....')
# a為寫模式,在原數(shù)據(jù)后追加寫入新數(shù)據(jù)
with open('1.txt', 'a', encoding='utf-8') as f:
f.write('777')

```

## 文件復(fù)制(先讀再寫)

```python
# 需求:
# 1.完成文本類型的文件復(fù)制:1.txt => 11.txt
r = open('1.txt', 'r', encoding='utf-8')
w = open('11.txt', 'w', encoding='utf-8')
for line in r: # 遍歷就是一行一行讀 取讀文件的流
w.write(line)
w.flush()
w.close()
r.close()
'''
# 將文件的關(guān)閉交給with管理,當(dāng)with中邏輯結(jié)束后,系統(tǒng)會(huì)自動(dòng)釋放文件
with open('1.txt', 'r', encoding='utf-8') as r, open('source.txt', 'w', encoding='utf-8') as w:
for line in r:
w.write(line)
w.flush()
# w.close() 系統(tǒng)自動(dòng)完成
# r.close()
# 邊讀邊寫賦值
with open('source.txt', 'r', encoding='utf-8') as f1:
with open('target.txt', 'a+', encoding='utf-8') as f2:
for line in f1:
f2.write(line)

```

## 從模式

## T模式

```python
文體操作(默認(rèn)模式)mode=rt\wt\at
```

## b模式

```python
b模式無需解碼,二進(jìn)制
mode=rb\wb\ab\wb+\ab+\wb+\rb+
應(yīng)用于存圖片,視頻
with open(file,mode)as f:
f.write(b('000')'如果是中文必須寫二進(jìn)制數(shù) 字母和阿拉伯不需要轉(zhuǎn),因?yàn)樵赽模式下也是一個(gè)字節(jié)表示,u模式下也是一個(gè)字節(jié)表示,(字母和阿拉伯機(jī)器可以識(shí)別,所以不用轉(zhuǎn)二進(jìn)制,自己識(shí)別)所以寫name直接寫,不用寫二進(jìn)制,而阿拉伯?dāng)?shù)字也是一個(gè)字節(jié)表示,打印出來顯示是十六進(jìn)制,而字母和數(shù)字的十六進(jìn)制就是直接能看懂的')
```

## +模式(一般不用)

```python
可讀可寫
mode='r+'\'w+'\'a+'
r+:不創(chuàng)建文件
w+:創(chuàng)建文件
a+:創(chuàng)建不清空文件
```

?

## 了解

```python
# x:寫模式,創(chuàng)建文件,如果文件以存在,就拋異常
with open('000.txt', 'x', encoding='utf-8') as f:
pass

```

## 指針移動(dòng)

```python
'''
百度網(wǎng)盤 - 秒傳
'''
'''
1. 如何使用游標(biāo):游標(biāo)的相關(guān)方法
2. 游標(biāo)相關(guān)的讀寫操作
3. 根據(jù)游標(biāo)在大文件中取出多個(gè)指定位置的部分字節(jié)內(nèi)容
'''

'''
seek(偏移量, 偏移位置)
偏移位置:
0 -- 文件開頭(指針向后偏移,讀取數(shù)據(jù)一直是指針到文件的末尾)
1 -- 當(dāng)前位置(指針會(huì)向前或者向后偏移,如果偏移量是負(fù)數(shù)的話就會(huì)向前(指針的位置向后讀取數(shù)據(jù),只是指針向前罷了,讀數(shù)據(jù)是往后),不是負(fù)值的話就是指針向后)
2 -- 文件末尾(指針向前偏移,讀取數(shù)據(jù)一直是指針到文件的開頭)
'''

# 方法:seek(偏移量, 偏移位置)
# 偏移量:移動(dòng)的字節(jié)數(shù),負(fù)數(shù)是結(jié)合模式1,2往前偏移
# 偏移位置:
# -- 0 - 從文件開始位置開始偏移 | 1 - 從當(dāng)前游標(biāo)位置開始偏移 | 2 - 從文件末尾開始偏移
# b'你好1234567890'

# 游標(biāo)讀
with open('source.txt', 'rb') as f:
d1 = f.read(11)
print(d1)
# print(d1.decode('utf-8'))

# 當(dāng)前游標(biāo)的位置
print(f.tell())

# 游標(biāo)操作 - 從末尾位置開始
f.seek(-3, 2)
d2 = f.read()
print(d2.decode('utf-8')) # 890

# # 游標(biāo)操作 - 從當(dāng)前位置開始
# f.seek(-3, 1)
# d2 = f.read()
# print(d2.decode('utf-8')) # 34567890

# # 游標(biāo)操作 - 從頭開始
# f.seek(3, 0)
# d2 = f.read()
# # print(d2)
# print(d2.decode('utf-8')) # 好1234567890

# 游標(biāo)寫:會(huì)覆蓋書寫
with open('source.txt', 'rb+') as f:
f.seek(11)
# print(f.read())
f.write(b'000')

print("-------------------------------------")
# 案例
with open('001.png', 'rb') as f:
data = f.read()
print(len(data))

# 在大文件中,開頭| 1/3 | 2/3 | 末尾 各取10個(gè)字節(jié)拼接成秒傳的信息依據(jù)
# 形成秒傳規(guī)則
tagData = b''
with open('001.png', 'rb') as f:
# 通過其他途徑(sys模塊)來獲取文件總大小
data = f.read()
length = len(data)
# 開頭
f.seek(0, 0)
d1 = f.read(10)
# 1/3
f.seek(length // 3, 0)
d2 = f.read(10)
# 2/3
f.seek(length // 3 * 2, 0)
d3 = f.read(10)
# 末尾
f.seek(-10, 2)
d4 = f.read(10)
tagData = d1 + d2 + d3 + d4
# 秒傳依據(jù)
print(tagData)

newData = b""
with open('001.png', 'rb') as f:
data = f.read()
length = len(data)
f.seek(0, 0)
newData += f.read(10)
f.seek(length // 3, 0)
newData += f.read(10)
f.seek(length // 3 * 2, 0)
newData += f.read(10)
f.seek(-10, 2)
newData += f.read(10)

if newData == tagData:
print('秒傳成功')
else:
print('慢慢傳去吧')
```

?

轉(zhuǎn)載于:https://www.cnblogs.com/huangxuanya/p/10637057.html

總結(jié)

以上是生活随笔為你收集整理的day8的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。