Python的學習筆記案例8--空氣質量指數計算4.0

2.0與3.0視頻中介紹瞭如何用Python處理JSON文件和CSV文件
本節擴展一下,讓程序自動判斷讀取的文件是JSON文件還是CSV文件,並進行相應的操作。

以下爲補充內容:

1、CSV文件讀取
import csv
csv.reader()將每行記錄作爲列表返回

2、使用with語句操作文件對象
with open('file_name') as somefile:
    for line in somefile:
        print(line)        
使用with語句,不管在處理文件過程中是否發生異常,都能保證with語句執行完畢後關閉文件,不需要close()語句。
使用with語句代替打開文件、操作文件、關閉文件的操作。

3、os模塊
os模塊提供了與系統、目錄操作相關的功能,不受平臺的限制。

函數 含義
os.remove() 刪除文件
os.makedirs() 創建多層目錄
os.rmdir() 刪除單級目錄
os.rename() 重命名文件
os.path.isfile() 判斷是否爲文件
os.path_isdir() 判斷是否爲目錄
os.path.join() 連接目錄,如path1連接path2爲path1/path2
os.path.splitext() 將文件分割成文件名和擴展名,如分割tmp.txt爲tmp和.txt

以下爲代碼:
1、主函數是通過os模塊的os.path.splitext()判斷擴展名走哪一個分支函數;
2、新建json解碼函數;
3、新建csv解碼函數。

"""
    作者:lanxingbudui
    日期:2020-02-23
    功能:AQI計算
    版本:4.0
"""

import json
import csv
import os


def process_json_file(file_path):
    """
        解碼json文件
    """
    """
    處理文件三步走:1、打開文件;2、處理文件;;3、關閉文件
    """
    # f = open(file_path, mode='r', encoding='utf-8')
    # city_list = json.load(f)
    # return city_list

    with open(file_path, mode='r', encoding='utf-8') as f:
        city_list = json.load(f)
    print(city_list)


def process_csv_file(file_path):
    """
        解碼csv文件
    """
    with open(file_path, mode='r', encoding='utf-8',newline='') as f:
        reader = csv.reader(f)
        for row in reader:
            print(', '.join(row))


def main():
    """
        主函數
    """
    file_path = input('請輸入文件名稱:')
    file_name, file_ext = os.path.splitext(file_path)
    if file_ext == '.json':
        # json文件
        process_json_file(file_path)
    elif file_ext == '.csv':
        # csv文件
        process_csv_file(file_path)
    else:
        print('不支持的文件格式!')


if __name__ == '__main__':
    main()

效果圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章