SlideShare uma empresa Scribd logo
1 de 30
09:檔案處理
2018.1.31
財團法人中華民國電腦技能基金會 策劃 逢甲大學 林英志 老師 編著
主題
• 開啟檔案
• 檔案操作
• 目錄管理
2
絕對路徑
(absolute path)
相對路徑
(relative path)
三部曲
• 檔案操作的三部曲為:
• 開啟 (open())
• 讀取(read)與寫入(write)
• 關閉 (close())
4
開啟檔案
• Python 內建的 open() 可以開啟檔案,語法如下:
• open(filename [, mode] [, encode] )
• filename
• 讀寫的檔案名稱,它是字串型態,可以是相對或絕對路徑
• 如果沒有設定路徑,則會預設為目前執行程式的目錄
5
開啟檔案
• Python 內建的 open() 可以開啟檔案,語法如下:
• open(filename [, mode] [, encode] )
• mode
• 設定檔案開啟的模式(r, w, a),也是字串型態
• 省略 mode 參數,將預設為讀取模式
6
範例
7
範例
8
偷懶一下
9
開啟檔案
• Python 內建的 open() 可以開啟特定檔案,語法如下:
• open(filename [, mode] [, encode] )
• encode
• 指定檔案的編碼模式,一般可設定 cp950 或 UTF-8
• 預設的編碼依作業系統而定,正體中文 Windows 系統預設的編
碼是 cp950,也就是記事本儲存為 ANSI 的編碼。
10
檔案編碼 – UTF-8
• 國際間通行的編碼以
及許多 Linux 系統,
預設都是使用 UTF-8
編碼,因此建議將檔
案另存為 UTF-8 (不要
使用 ANSI)。
11
檔案編碼 – UTF-8
• 如果檔案編碼已更改為 UTF-8,則讀取時就必須明確指
定編碼為 UTF-8,否則會出現錯誤。
• f = open(“file1.txt”, ‘r’, encoding=“UTF-8”)
• f = open(“file1.txt”, ‘r’, encoding=“utf-8”)
• UTF-8 = 8-bit Unicode Transformation Format
12
主題
• 開啟檔案
• 檔案操作
• 目錄管理
13
處理檔案
常用方法
read()
• read() 會從目前檔案指標的位置,讀取指定長度的字元
• 如果未指定長度則會讀取所有的字元
15
readline()
• 讀取目前檔案指標所在行中 size 長度的文字內容
• 若省略參數,則會讀取一整列,包括 “n” 字元
16
readlines()
• 讀取全部檔案內容,並以串列方式傳回
• 檔案內的每一列會成為串列中的一個元素
17
注意
• 讀取 UTF-8 編碼的 file2.txt 檔案內容
18
BOM (Byte Order Mark)
• 串列內容的第一筆資料前面多了一個「ufeff」字元,這
個字元是文件前端代碼,俗稱 BOM。
• 它是在中文 Windows 系統中,用「記事本」將檔案儲存為
UTF-8 時自動產生。
• BOM 會佔 1 個字元,因此第 7 列執行的結果只看到「123 中」
這 4 個字元,因為第一個字元 BOM 未顯示出來。
19
UTF-8-SIG
• 另一種處理方式就是讀取有 BOM 的文件檔時,明確地加
上 「encoding = ‘UTF-8-SIG’」將 BOM 去除。
20
密技
21
主題
• 開啟檔案
• 檔案操作
• 目錄管理
22
import os
• os 提供建立目錄、刪除目錄、刪除檔案、執行作業系統
命令等方法
• 使用時要匯入 os 套件
• remove()
• 刪除指定的檔案,一般會配合 os.path 的 exists() 方法,先檢
查該檔案是否存在,再決定是否要刪除檔案。
23
os.mkdir(), os.rmdir()
• mkdir() 方法可以建立指定的目錄
• rmdir() 方法可以刪除指定的目錄
• 刪除目錄前必須先刪除該目錄的檔案
24
os.system()
• 執行作業系統命令
25
os.path
26
os.walk
28
PY3-0002
九、資料計算
29
本章結束

Mais conteúdo relacionado

Mais procurados

Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章neochen2701
 
023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story Presentation023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story PresentationFast SiC Semiconductor Inc.
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
 
講師營學習心得分享 No.1 講師如何介紹自已
講師營學習心得分享 No.1 講師如何介紹自已講師營學習心得分享 No.1 講師如何介紹自已
講師營學習心得分享 No.1 講師如何介紹自已基欽 劉
 
Iso 27001:2013新版轉版差異
Iso 27001:2013新版轉版差異Iso 27001:2013新版轉版差異
Iso 27001:2013新版轉版差異Wanhung Chou
 
pythonワンライナーのすゝめ
pythonワンライナーのすゝめpythonワンライナーのすゝめ
pythonワンライナーのすゝめcocu_628496
 
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖文化大學
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptologysodhero
 
NUPSC招待講演:アルゴリズムで広がる世界
NUPSC招待講演:アルゴリズムで広がる世界NUPSC招待講演:アルゴリズムで広がる世界
NUPSC招待講演:アルゴリズムで広がる世界Kentaro Imajo
 
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班文化大學
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』Proktmr
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門Eita Sugimoto
 
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練Joseph Chiang
 

Mais procurados (20)

Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章
 
023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story Presentation023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story Presentation
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
講師營學習心得分享 No.1 講師如何介紹自已
講師營學習心得分享 No.1 講師如何介紹自已講師營學習心得分享 No.1 講師如何介紹自已
講師營學習心得分享 No.1 講師如何介紹自已
 
Iso 27001:2013新版轉版差異
Iso 27001:2013新版轉版差異Iso 27001:2013新版轉版差異
Iso 27001:2013新版轉版差異
 
pythonワンライナーのすゝめ
pythonワンライナーのすゝめpythonワンライナーのすゝめ
pythonワンライナーのすゝめ
 
文字列アルゴリズム
文字列アルゴリズム文字列アルゴリズム
文字列アルゴリズム
 
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖
103.07.11 mtp-【中高階主管管理才能訓練班】講義部屬培育與啟發-2版-詹翔霖
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
系統性問題解決方法-QC Story
系統性問題解決方法-QC Story系統性問題解決方法-QC Story
系統性問題解決方法-QC Story
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptology
 
NUPSC招待講演:アルゴリズムで広がる世界
NUPSC招待講演:アルゴリズムで広がる世界NUPSC招待講演:アルゴリズムで広がる世界
NUPSC招待講演:アルゴリズムで広がる世界
 
QC Story _問題解決型
QC Story _問題解決型QC Story _問題解決型
QC Story _問題解決型
 
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
 
database 13-14
database 13-14database 13-14
database 13-14
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門
 
Trianguler
TriangulerTrianguler
Trianguler
 
Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練Javascript 入門 - 前端工程開發實務訓練
Javascript 入門 - 前端工程開發實務訓練
 

Semelhante a TQC+ 程式語言 Python 09:檔案處理

8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組Justin Lin
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組Justin Lin
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組Justin Lin
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdfJTLai1
 
CH10:輸入輸出
CH10:輸入輸出CH10:輸入輸出
CH10:輸入輸出Justin Lin
 
[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1ArBing Xie
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Brad Chao
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇Justin Lin
 

Semelhante a TQC+ 程式語言 Python 09:檔案處理 (9)

8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdf
 
CH10:輸入輸出
CH10:輸入輸出CH10:輸入輸出
CH10:輸入輸出
 
[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制
 
Io 1
Io 1Io 1
Io 1
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
 

Mais de neochen2701

20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述neochen2701
 
201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察neochen2701
 
20191028 -successful cases
20191028 -successful cases20191028 -successful cases
20191028 -successful casesneochen2701
 
20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享neochen2701
 
20191014-林金祥-UIUX
20191014-林金祥-UIUX20191014-林金祥-UIUX
20191014-林金祥-UIUXneochen2701
 
20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具neochen2701
 
201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫neochen2701
 
201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽neochen2701
 

Mais de neochen2701 (8)

20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述
 
201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察
 
20191028 -successful cases
20191028 -successful cases20191028 -successful cases
20191028 -successful cases
 
20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享
 
20191014-林金祥-UIUX
20191014-林金祥-UIUX20191014-林金祥-UIUX
20191014-林金祥-UIUX
 
20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具
 
201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫
 
201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽
 

TQC+ 程式語言 Python 09:檔案處理