SlideShare ist ein Scribd-Unternehmen logo
1 von 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
本章結束

Weitere ähnliche Inhalte

Was ist angesagt?

Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章neochen2701
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиenhsaran_tsahim
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10Badral Khurelbaatar
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptologysodhero
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
статистикийн функцууд
статистикийн функцуудстатистикийн функцууд
статистикийн функцуудKahatanbayr
 

Was ist angesagt? (20)

Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
 
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
 
Лекц №12
Лекц №12Лекц №12
Лекц №12
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
 
2
22
2
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
Лекц 3 (Давталт)
Лекц 3 (Давталт)Лекц 3 (Давталт)
Лекц 3 (Давталт)
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptology
 
Лекц №10
Лекц №10Лекц №10
Лекц №10
 
Lecture3 охп удамшил
Lecture3 охп удамшилLecture3 охп удамшил
Lecture3 охп удамшил
 
Java lecture5
Java lecture5Java lecture5
Java lecture5
 
Lecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшилLecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшил
 
Ms access
Ms accessMs access
Ms access
 
database 7-8
database 7-8database 7-8
database 7-8
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
статистикийн функцууд
статистикийн функцуудстатистикийн функцууд
статистикийн функцууд
 
Pp Lect3 1
Pp Lect3 1Pp Lect3 1
Pp Lect3 1
 
database 9
database 9database 9
database 9
 

Ähnlich wie 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
 

Ähnlich wie 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 - 另一個選擇
 

Mehr von 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
 

Mehr von 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-林孟穎-溝通-聆聽
 

Kürzlich hochgeladen

educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 

Kürzlich hochgeladen (6)

educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 

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