python基礎之文件操作和異常處理
一、文件和異常
1.1從文件中讀取數(shù)據(jù)
讀取整個文件
讀取文件先要創(chuàng)建一個文件,在程序的同一目錄下。
greet.txt
“Hello World!
Hello World!
Hello World!
Hello World!”
with open('greet.txt') as file_object:
contents=file_object.read()
print(contents)

如果txt文件中有中文,輸出出現(xiàn)亂碼時,可以with open(‘greet.txt',encoding=‘UTF-8') as file_object:。
1.2open()
要以任何方式使用文件時,都必須先打開文件,才能訪問。函數(shù)open()接受一個參數(shù),打開文件的名稱。在這里open(‘greet.txt')返回的是一個表示文件greet.txt的對象,然后將該對象賦給file_object供以后使用。
1.3關鍵字with
關鍵字with在不再需要訪問文件后將其關閉。也可以調(diào)用open()和close()來打開文件。但是不推薦。
1.4read()
方法read()讀取文件的全部內(nèi)容,并將其作為一個長長的字符串賦給變量contents。
二、逐行讀取
with open('greet.txt',encoding='UTF-8') as file_object:
for line in file_object:
print(line)

會發(fā)現(xiàn)多輸出空白行,文件末尾會有一個換行符,而print會換行,所以就多了,可以使用rstrip()。
with open('greet.txt',encoding='UTF-8') as file_object:
for line in file_object:
print(line.rstrip())

三、創(chuàng)建一個包含文件各行內(nèi)容的列表
with open('greet.txt',encoding='UTF-8') as file_object:
lines=file_object.readlines()
for line in lines:
print(line.rstrip())

3.1readlines()
readlines()從文件讀取每一行,并將其存在一個列表中。
四、查找字符串中是否含有特定的字符串
greet_str=''
with open('greet.txt',encoding='UTF-8') as file_object:
lines=file_object.readlines()
for line in lines:
greet_str+=line
input_str=input('輸入你想查找的字符串')
if input_str in greet_str:
print('有')
else :
print('無')

4.1對字符串進行修改
message='Hello World!'
print(message.replace('World','China'))

五、寫入文件
5.1寫入空文件
with open('greet.txt','w',encoding='UTF-8') as file_object:
file_object.write('我愛編程')

w'告訴Python要以寫入模式打開這個文件。打開文件時可以指定模式:讀取模式'r‘,寫入模式'w',附加模式‘a(chǎn)'或讀寫模式'r+‘。如果省略了模式實參,則默認只讀模式打開文件。
使用寫入模式時要小心,因為會把文件的內(nèi)容清空。
5.2寫入多行
函數(shù)write()不會在文本末尾加換行符所以要我們自己添加。
5.3附加到文件
如果要在文件末尾附加內(nèi)容,可以打開附加模式,如果指定文件不存在,Python將自動創(chuàng)建一個空文件。
先greet.txt

with open('greet.txt','a',encoding='UTF-8') as file_object:
file_object.write('我愛編程\n')
后greet.txt

六、異常
Python使用稱為異常的特殊對象來管理程序執(zhí)行期間發(fā)生的錯誤。
異常是使用try-except代碼塊進行處理的。
6.1處理ZeroDivisionError異常
try:
print(4/0)
except ZeroDivisionError:
print('不能數(shù)以0')

如果代碼塊try-except后面還有代碼將接著運行。
try:
print(4/0)
except ZeroDivisionError:
print('不能數(shù)以0')
print('--==')

6.2處理FileNotFoundError異常
使用文件時如果找不到文件,可以使用try-except代碼塊。
分析文本 split()
split()能根據(jù)一個字符串創(chuàng)建一個列表,它以空格為分隔符將字符串拆成多個部分。
str='你好 世界' print(str.split())

6.3靜默失敗
當發(fā)生異常時我們也可以什么都不做。
try: print(4/0) except ZeroDivisionError: pass

pass也可以提示我們什么都沒有做。
七、存儲數(shù)據(jù)
模塊json可以將簡單的數(shù)據(jù)結構儲存在文件當中。json
不僅僅能在python中分享數(shù)據(jù),也可以給其他編程語言分享。
7.1使用json.dump()和json.load()
import json
number=list(range(10))
with open('number.json','w') as file:
json.dump(number,file)

json.dump()接受兩個實參:要 儲存的數(shù)據(jù)和儲存數(shù)據(jù)的文件對象。文件通常使用文件擴展名.json來支出文件儲存的數(shù)據(jù)為JSON格式。
import json
with open('number.json') as file:
number=json.load(file)
print(number)

7.2重構
將代碼改進的過程稱為重構。重構使代碼更加清晰,更易于理解,更容易擴容。
到此這篇關于python基礎之文件和異常處理的文章就介紹到這了,更多相關python文件和異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
各種Python庫安裝包下載地址與安裝過程詳細介紹(Windows版)
這篇文章主要介紹了Windows版的各種Python庫安裝包下載地址與安裝過程詳細介紹,本文給大家提供了windows版的各種Python庫安裝包下載地址等相關知識,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11
python3 破解 geetest(極驗)的滑塊驗證碼功能
這篇文章主要介紹了python3 破解 geetest(極驗)的滑塊驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2018-02-02
pandas把dataframe轉成Series,改變列中值的類型方法
下面小編就為大家分享一篇pandas把dataframe轉成Series,改變列中值的類型方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
僅用50行代碼實現(xiàn)一個Python編寫的計算器的教程
這篇文章主要介紹了僅用50行代碼實現(xiàn)一個Python編寫的計算器的教程,主要用到了PlyPlus庫使得核心代碼十分簡單,需要的朋友可以參考下2015-04-04
Python使用MySQL8.2讀寫分離實現(xiàn)示例詳解
在這篇文章中,我們將了解如何將?MySQL?8.2?的讀寫分離功能與?MySQL-Connector/Python?一起使用的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

