一瓷翻、文件的介紹
文件的作用:
使用文件的目的:保存數(shù)據(jù)存放在磁盤
把一些存儲(chǔ)存放起來哺徊,可以讓程序下一次執(zhí)行的時(shí)候直接使用,而不必重新制作一份遮糖,省時(shí)省力
二、文件的打開與關(guān)閉
2.1 打開文件
f = open(‘文件’, 'w')或者f = open('文件', 'r')
2.1.1 寫數(shù)據(jù)(write)
對(duì)象 = open("文件",w)
對(duì)象.write("寫入數(shù)據(jù)")
對(duì)象.close()
如果文件不存在那么創(chuàng)建叠赐,如果存在那么就先清空欲账,然后寫入數(shù)據(jù)
2.1.2 讀數(shù)據(jù)(read)
對(duì)象 = open("文件",r)
變量 = 對(duì)象.read()
print(變量)
如果用open打開文件時(shí),如果使用的"r"芭概,那么可以省略赛不,即只寫 open('test.txt')
如果沒有文件,打開報(bào)錯(cuò)罢洲,存在該文件才能操作
如果文件中存在中文顯示踢故,會(huì)出現(xiàn)亂碼需要添加encoding='utf-8'
open(‘test.txt’,”r”, encoding='utf-8')
2.1.3 讀數(shù)據(jù)(readlines)
對(duì)象 = open("文件",r)
變量 = 對(duì)象.readlines()
print(變量)
readlines可以按照行的方式把整個(gè)文件中的內(nèi)容進(jìn)行一次性讀取,并且返回的是一個(gè)列表惹苗,其中每一行的數(shù)據(jù)為一個(gè)元素
2.1.4 讀數(shù)據(jù)(readline)
對(duì)象 = open("文件",r)
變量 = 對(duì)象.readline()
print(變量)
readline可以按照行的方式把整個(gè)文件中的內(nèi)容進(jìn)行一行一行的讀取
2.1.5 可寫(a)
對(duì)象 = open("",a)
對(duì)象.write("寫入數(shù)據(jù)")
對(duì)象.close()
(可寫)形式打開文件殿较,如果文件不存在則創(chuàng)建并從頭添加寫入的內(nèi)容,存在則原有數(shù)據(jù)后追加數(shù)據(jù)
2.1.6 讀數(shù)據(jù)(rb)
格式1
對(duì)象 = open("二進(jìn)制文件",rb)
變量= 對(duì)象.read()
print(變量)
格式2
with open("二進(jìn)制文件","rb") as 對(duì)象:
變量 = 對(duì)象.read()
print(變量)
格式2中不需要手動(dòng)關(guān)閉文件桩蓉,所以經(jīng)常被使用
如果沒有文件淋纲,打開報(bào)錯(cuò),存在該文件才能操作
2.1.7 寫數(shù)據(jù)(wb)
with open("二進(jìn)制文件","wb") as 對(duì)象:
變量 = 對(duì)象.write()
print(變量)
2.2 關(guān)閉文件
close( )
三院究、文件和文件夾的操作
3.1 文件重命名
os模塊中的rename()可以完成對(duì)文件的重命名操作
import os
os.rename("需要修改的文件名","新文件名")
3.2 刪除文件
import os
os.remove("文件名")
文件夾的相關(guān)操作
2.1 創(chuàng)建文件夾
os模塊中的mkdir()可以完成對(duì)文件的重命名操作
2.2 獲取當(dāng)前目錄
os模塊中的getcwd()可以獲取當(dāng)前目錄
四洽瞬、異常
1 異常處理
1.1 作用
捕捉異潮咎椋可以使用try/except語句。
try/except語句用來檢測(cè)try語句塊中的錯(cuò)誤伙窃,從而讓except語句捕獲異常信息并處理菩颖。
如果你不想在異常發(fā)生時(shí)結(jié)束你的程序,只需在try里捕獲它对供。
1.2 語法
try:
<語句>? ? ? ? #運(yùn)行別的代碼
except <名字>:
<語句>? ? ? ? #如果在try部份引發(fā)了'name'異常
else:
<語句>? ? ? ? #如果沒有異常發(fā)生
1.3:使用except而不帶任何異常類型
try:
正常的操作
except :
發(fā)生異常位他,執(zhí)行這塊代碼
else:
如果沒有異常執(zhí)行這塊代碼
注意:以上方式try-except語句捕獲所有發(fā)生的異常。但這不是一個(gè)很好的方式产场,我們不能通過該程序識(shí)別出具體的異常信息鹅髓。因?yàn)樗东@所有的異常。
1.4:使用except而帶多種異常類型
try:
異常的操作
except(Exception1[, Exception2[,...ExceptionN]]]):
發(fā)生以上多個(gè)異常中的一個(gè)京景,執(zhí)行這塊代碼
......................
else:
如果沒有異常執(zhí)行這塊代碼
1.5:try-finally 語句
try-finally 語句無論是否發(fā)生異常都將執(zhí)行最后的代碼
try:
<語句>
finally:
<語句>? ? #退出try時(shí)總會(huì)執(zhí)行