安安~
希望大家昨天學的 Python 基礎語法 以及 最常見的四種資料型態大家都還吸收得不錯!
今天我們一樣要繼續聊跟 coding 有關的主題,來看看另一個初學者一開始最容易卡關的環節,那就是「讀檔」。
想想看,我們的資料大多是存在檔案裡的,如果不能把檔案正確地「讀」進 Python,就無法用python進一步做任何分析或 NLP 處理。
所以如何讀檔以及知道自己的檔案位置在哪可以說是非常的重要拉!
今天的內容大致會教大家如何讀檔(文字、csv) 以及了解檔案入徑(絕對路徑、相對路徑)。
那廢話不多說,我們就開始嚕!
首先,我們先來看看檔案路徑的觀念
在讀檔之前,我們得先知道檔案到底在哪裡。
這就像要找一間餐廳,得先知道它的地址,才可以根據那個地址前往,並且進到那街餐廳品嚐美食
在電腦裡,檔案的「地址」就是路徑 (path),常見兩種方式:
簡單來說,就是完整的檔案位置拉!
你可以把它想成他是一家餐廳的完整地址,不管你人在城市的哪一個角落、哪一個位置,這個地址都不會變動,只要輸入這一串路徑,就一定能找到那個家餐廳。
同理,檔案在電腦裡面一定有一個「絕對路徑」,只要輸入這個路徑,不管你目前在電腦中的哪個位置,只要輸入這一串路徑,就能幫你找到那個檔案。
Mac 和 Windows 有不同複製檔案路徑的方式:
也可以用快捷鍵:command+option+c
然後貼上後會得到完整路徑,例如:/Users/你的名字/Desktop/example.txt
windows 比及麻煩一丟丟,現在擷取到的檔案路徑如果直接使用去讀檔結果會報錯~因為路徑裡的反斜線 \ 在 Python 字串中是跳脫字元。所以要記得把每個 \ 改成 \,或在字串前加 r。
範例:
#方法一:雙反斜線
path = "C:\\Users\\username\\Documents\\example.txt"
#方法二:raw string
path = r"C:\Users\username\Documents\example.txt"
當然,如果不想手動查詢資料的絕對位置,也可以直接用python 直接查詢你的檔案位置
我們要先用import 引入os 套件 (如果本身還沒有下載過os 套件的,請先打pip install os)
#引入 os 套件
import os
print(os.path.abspath("example.txt"))
#回傳答案
/Users/xxuan/example.txt
這樣就知道檔案位置在哪拉!
相對路徑的概念比絕對路徑稍微複雜一點。
如果說 絕對路徑 像是餐廳的完整地址,
那相對路徑就像是你已經站在某個路口,
從「自己所在的位置」出發去找餐廳的路線指引。
換句話說,使用相對路徑找檔案,就是以目前所在的位置(工作目錄)為起點,
去描述檔案的相對位置。
符號 | 意思 | 小小概念比喻 |
---|---|---|
/ |
路徑中的分隔符號,表示往下一層資料夾 | 進入下一條巷子 |
. |
目前所在的資料夾 | 你現在站的路口 |
.. |
上一層資料夾 | 退回上一條巷子 |
舉個簡單的例子,如果我的資料example.txt 是儲存在project 這個資料夾底下的data資料夾裡面,
資料夾的結構會長這樣:
project/
└─ data/
└─ example.txt
現在我正在 project 這個資料夾裡工作。
如果要讀取 data 資料夾裡的 example.txt,
相對路徑可以寫成:./data/example.txt
這裡的.
代表目前所在的資料夾(也就是 project),
你可以把它想成「從這裡開始」的意思;
/ 則表示「往下一層」。
整個路徑就是:從現在這個資料夾出發,進入 data 資料夾,再找到 example.txt。
特別注意:使用相對路徑時,要確保自己目前所在的位置在哪裡,不然可能怎麼找都找不到喔XD
好啦~知道檔案路徑位置之後,我們就可以開始讀取檔案啦!
在實務上,最常見的檔案格式大概就是文字檔(.txt)和CSV 檔(.csv),其實了解檔案路徑之後一切都很簡單!
# 打開並讀取文字檔
with open("這裡放你的檔案路徑", "r", encoding="utf-8") as f:
content = f.read()
print(content)
"r":代表的是read(讀取)模式
encoding="utf-8":避免中文亂碼
import pandas as pd
data = pd.read_csv("這裡放你的檔案位置")
print(data.head()) # 顯示前五列資料
這樣就完成嚕!是不是很簡單~
大家可以試試看用自己手邊的資料練習練習!
啊其實這些讀檔的指令不用硬背,上網查一下都能找到,真正重要的是基礎概念,像是檔案位置,因為每個人的資料夾結構和儲存習慣都不一樣,所以學會如何找到檔案路徑,是絕對必要噠~這樣後續的各種操作都會比較容易!
好拉~那今天就簡單介紹到這邊!
我們明天見~