python day3 編碼及檔案操作

2021-09-20 23:25:37 字數 3770 閱讀 4609

3.1 編碼解碼

3.2 檔案操作

encode編碼

docode解碼

python2 預設 ascii格式

# -*- coding:utf-8 -*-    # 宣告程式是啥編碼格式

# 將文字解碼unicode格式

sname = name.decode("utf-8")# 必須先宣告解碼的格式是啥,比如utf-8

print(sname)

ssname = sname.encode("gbk")# 將文字編碼成gbk格式

print(ssname)

# 必須注意的是:  當gbk轉成utf-8時必須先轉成unicode格式然後再轉成uft-8 反過來也是

python3 預設 unicode

b = byte = 位元組型別 = 2進製

py3 與py2 編碼區別

encode 在編碼的同時,會把資料轉成bytes型別

decode 在解碼的同時,會把bytes型別轉成字串

能呼叫方法的一定是物件

檔案操作  , 下列方法都用在檔案操作物件

r:讀模式操作  

w:寫操作物件

a:追加新增 

r+: 讀寫模式當使用write時文字會追加到最後一行的行尾

w+: 寫讀模式當使用write時,會先清空檔案內容再寫到檔案中

a+: 追加讀

open(1)# 開啟,1表示乙個漢字只列印乙個字元 

close# 關閉檔案

write# 寫模式

ra = open('測試檔案','w',encoding='utf-8')

ra.write("就是第一行測試字串.")

print(ra)

ra.close()

ra = open('測試檔案','r',encoding='utf-8')

rar = ra.read()

print(rar)

ra.close()

列印結果:就是第一行測試字串.

raa = open('測試檔案','a',encoding='utf-8')

raa.write('就是第二行測試字串')

raa.close()

打本文本結果: 就是第一行測試字串.就是第二行測試字串   預設沒有換行,預設插入就是在游標處

raa = open('測試檔案','a',encoding='utf-8')

raas = raa.write('\n就是第二行測試字串\n')

raa.close()

與上乙個不同的是,加上換行符之後它會換行

檔案操作流程:

1、開啟檔案,得到檔案控制代碼並賦值給乙個變數;

控制代碼: 檔案的操作物件

2、通過控制代碼對檔案進行操作;

3、關閉檔案

readline()   列印行 預設第一行

readlines() 列印全部行 

# 開啟乙個測試檔案以唯讀的方式,格式為utf-8

file = open('測試檔案','r',encoding='utf-8')

# 賦值乙個檔案變數

a = file.readlines()

# 設定乙個初始值

nubmer=0

# 迴圈列印a檔案變數的值,從第乙個開始

for i in a:

# 初始值每次加1當等於2的時候使用join給這行更改配置項,並不列印/n換行符

nubmer+=1

if nubmer == 2:

i = ''.join([i.strip(),'aaaaa'])

# 每次列印這行,當第2次等於join那麼就輸出第2次變數的值 

print(i.strip())

# 關閉檔案操作屬性,

a.close()

修改檔案

#  定義兩個變數以及檔案

f_read = open('測試檔案','r',encoding='utf-8')

f_write = open('測試檔案2','w',encoding='utf-8')

number = 0# 設定變數為0迴圈某檔案行數時,每次加1

for f in f_read:

number += 1

if number == 2:# 當為2時,給檔案變數字串賦值乙個

f='xiong test.\n'

f_write.write(f)# 最後給它寫到新的乙個檔案裡,就能完成修改檔案操作

# 管理單個物件,此方法不再需要使用close()方法

with open('測試檔案','r',encoding='utf-8') as f1:

pass

# 管理多個物件

with open('測試檔案','r',encoding='utf-8') as f1,open('測試檔案2','w',encoding='utf-8') as f2 :

pass

tell 檢測游標位置

print(file.read(4))

print(file.tell())

列印結果:就是第一

12乙個中文3個字元,uft8格式

檔案物件.seek()   調整游標位置

print(file.seek(1))

print(file.tell())

列印結果:1

1# 乙個型別tail -1的指令碼 

1

2

3

4

5

6

7

8

9

10

f=open('file3','rb')

foriinf:

num_bytes=-10

whiletrue:

data=f.readlines()

iflen(data) >1:

print('最後一行的結果是:%s'%(data[-1].decode('utf-8')))

break

num_bytes*=2

刻意練習Python DAY3

1.python的列表中可以同時存放整形 浮點型 字串 列表。mix 1 小甲魚 3.14,1,2,3 2.向列表中新增元素 腰魚 member.extend 腰魚 小雪 member.insert 0,牡丹 3.從列表中刪除元素 member.remove 腰魚 del member 1 memb...

小白學習python Day3

與數學中的整數意義一致,可正可負,沒有範圍限制 pow x,y 計算x的y次方 十種進製表大形式 十進位制 二進位制 0b,0b 八進位制 0o,0o 十六進製制 0x,0x 帶有小數點及小數的數字,浮點數的取值範圍和小數精度都存在限制 浮點數間的運算存在不確定尾數 二進位制轉換問題 使用round...

學習Python Day3 迴圈

python中的迴圈有兩種 for迴圈和while迴圈。for 變數 in 序列 迴圈體說明 a.for in 關鍵字 固定寫法 b.變數 可以是任意變數 一般寫乙個新的變數 c.序列 python中容器型資料型別,例如 字串 列表 元組 字典 集合 迭代器 生成器 range等 d.冒號 固定寫法...