1. 程式人生 > >1.3 Python基本程式設計解析(中)

1.3 Python基本程式設計解析(中)

1. 檔案讀寫操作

1.1 檔案開啟與關閉

檔案處理的步驟:開啟-操作-關閉

  • open()函式開啟檔案
  • 變數f是檔案控制代碼,內部是檔案物件
  • .close()方法關閉檔案
<變數名> = open(<檔名>,<開啟模式>)

1.2 檔案的開啟模式

開啟模式舉例 描述
‘r’ 只讀模式,預設值,如果檔案不存在,返回FileNotFoundError
‘w’ 覆蓋寫模式,檔案不存在則建立,存在則完全覆蓋
  • f = open('f.txt','r')只讀模式開啟文字檔案
  • f = open('f.txt','w')覆蓋寫模式開啟文字檔案

1.3 檔案的全文讀入

一次性全部讀入檔案

f = open("f.txt","r")
txt = f.read()
# 對全文txt進行處理
f.close()

按行讀入文字

f = open("f.txt","r")
for line in f:
    # 每行文字儲存在line中,可逐行處理
f.close()

2. 迴圈語句

python包括兩種迴圈:

  • 遍歷迴圈:由for和in組成,從遍歷結構中逐一獲得元素進行迴圈
for <迴圈變數> in <遍歷結構>:
    <語句塊>
  • 無限迴圈:使用while保留字,由條件控制迴圈過程。反覆執行語句塊,直到條件不滿足時結束
while <條件>:
    <語句塊>

3. 異常處理

異常處理:對程式執行異常的處理機制,提高使用者體驗

try:
    <語句塊1>
except:
    <語句塊2>
  • 使用try-except保留字
  • 捕獲語句塊1中異常,採用語句塊2進行處理

例項2 感測器日誌檔案分析

程式需求

感測器日誌檔案

日期date | 時間Time | 溫度Temperature | 溼度Humidity | 光照Light | 電壓Voltage
yyyy-mm-dd hh:mm:ss.xxx real real real real

  • 日誌檔案中,每一行是一條日誌資訊
  • 每行日誌包括4個感測器資料:溫度、溼度、光照和電壓

計算感測器日誌檔案中溫度資料的平均值

  • 日誌檔案包含1萬條資料
  • 溫度資料在檔案的第3列
  • 輸入:日誌檔案sensor-data.txt
  • 輸出:平均溫度數值,保留小數點後兩位
# SensorReader.py
try:  # 異常處理
    f = open("sensor-data.txt","r")
    avg, cnt = 0, 0
    for line in f:
        ls = line.split()
        cnt += 1
        avg += eval(ls[2])
    print("平均的溫度值是:{:.2f}".format(avg / cnt))
    f.close()
except:
    print("檔案開啟錯誤")