一、異常
程序在運行的過程中,不可避免出現一些錯誤,這些錯誤成為異常
異常以后的代碼都不會被執行
try 語句
代碼塊(可能出現錯誤的語句)
except 異常類型 as 異常名:
代碼塊(出錯以后執行的語句)
except 異常類型 as 異常名:
代碼塊(出錯以后執行的語句)
except 異常類型 as 異常名:
代碼塊(出錯以后執行的語句)
....
else:
代碼塊(沒有出現錯誤時要執行的語句)
finally:
print('無論是否出現異常,都會執行。。')
異常的傳播 --
當這個程序在運行的過程中出現異常,所以異常信息會被保存在一個專門的異常對象中, 而異常傳播時,實際上就是異常對象拋給了調用處
二、文件
文件(file) I/O(Input/Output)
通過python程序來對計算機中的各種文件進行增刪改查的操作
操作文件的步驟
1.打開文件 2. 對文件進行讀寫 3. 關閉文件
open(file_name):返回值是一個對象, 返回的是當前打開的文件的對象
三、關閉文件
file_obj.close()
# with ...as 語句 : 不用手動寫 file.close()
例如:
with open(file_name) as file_obj:
# 在with語句中操作open文件
print(file_obj.read())
當我們獲取了文件對象之后,所有的操作都是通過文件對象來操作的
讀取文件內容, 通過read() 來讀取,將讀取到的內容保存到一個字符串中
try:
with open(file_name) as file_obj:
# 在with語句中操作open文件
print(file_obj.read())
except FileNotFoundError:
# print('%s沒有找到' % file_name)
print(f'{file_name}文件不存在')
四、讀取文件
調用open() 來打開了一個文件,打開的文件可以分為2種類型:
第一種是純文本文件(使用utf-8編寫的文本文件)
第二種是二進制文件(圖片,音頻,視頻)
help(file_obj.read)
read() 可以接收一個size作為參數來傳遞,默認值是-1會讀取所有
該參數時用來指定讀取字符的數量
可以為size 指定一個值,這樣read()會讀取指定數量的字符
每一次讀取的時候都是從上一次讀取的位置來讀取
如果剩余的字符數量小于size,則一下讀取剩余的內容
*
readline() 一行一行讀取內容
readlines() 用于一行一行的讀取,將讀取的數據放在一個列表里
五、文件的寫入
write() 向文件中寫入文件,write()需要傳遞一個字符串,
操作文件的時候,要指定操作的類型
w 表示可以寫文件,使用w寫入文件的時候,如果文件不存在會創建文件,如果存在,會覆蓋原文件
file_obj.write(6666) # TypeError: write() argument must be str, not int
a 表示追加,在原有字符串后面追加
r = file_obj.write(str(6666)) 返回類型是 寫入字符串的長度
六、二進制文件--
rb 讀二進制, wb 寫二進制
file_name = r'C:\Users\Administrator\Desktop\周深 - 與卿.mp3'
with open(file_name,'rb') as file_obj:
# print(file_obj.read(100))
new_name = 'a.mp3'
with open(new_name,'wb') as new_obj:
# 定義讀取的大小
nu = 1024 * 100
while True:
content = file_obj.read(nu)
if not content:
break
new_obj.write(content)