
- Python 基礎
- Python - 首頁
- Python - 概述
- Python - 歷史
- Python - 特性
- Python vs C++
- Python - Hello World 程式
- Python - 應用領域
- Python - 直譯器
- Python - 環境設定
- Python - 虛擬環境
- Python - 基本語法
- Python - 變數
- Python - 資料型別
- Python - 型別轉換
- Python - Unicode 系統
- Python - 字面量
- Python - 運算子
- Python - 算術運算子
- Python - 比較運算子
- Python - 賦值運算子
- Python - 邏輯運算子
- Python - 位運算子
- Python - 成員運算子
- Python - 身份運算子
- Python - 運算子優先順序
- Python - 註釋
- Python - 使用者輸入
- Python - 數字
- Python - 布林值
- Python 控制語句
- Python - 控制流
- Python - 決策
- Python - If 語句
- Python - If else
- Python - 巢狀 If
- Python - Match-Case 語句
- Python - 迴圈
- Python - for 迴圈
- Python - for-else 迴圈
- Python - While 迴圈
- Python - break 語句
- Python - continue 語句
- Python - pass 語句
- Python - 巢狀迴圈
- Python 函式 & 模組
- Python - 函式
- Python - 預設引數
- Python - 關鍵字引數
- Python - 僅限關鍵字引數
- Python - 位置引數
- Python - 僅限位置引數
- Python - 可變引數
- Python - 變數作用域
- Python - 函式註解
- Python - 模組
- Python - 內建函式
- Python 字串
- Python - 字串
- Python - 字串切片
- Python - 修改字串
- Python - 字串連線
- Python - 字串格式化
- Python - 跳脫字元
- Python - 字串方法
- Python - 字串練習
- Python 列表
- Python - 列表
- Python - 訪問列表項
- Python - 修改列表項
- Python - 新增列表項
- Python - 刪除列表項
- Python - 迴圈遍歷列表
- Python - 列表推導式
- Python - 排序列表
- Python - 複製列表
- Python - 合併列表
- Python - 列表方法
- Python - 列表練習
- Python 元組
- Python - 元組
- Python - 訪問元組項
- Python - 更新元組
- Python - 解包元組
- Python - 迴圈遍歷元組
- Python - 合併元組
- Python - 元組方法
- Python - 元組練習
- Python 集合
- Python - 集合
- Python - 訪問集合項
- Python - 新增集合項
- Python - 刪除集合項
- Python - 迴圈遍歷集合
- Python - 合併集合
- Python - 複製集合
- Python - 集合運算子
- Python - 集合方法
- Python - 集合練習
- Python 字典
- Python - 字典
- Python - 訪問字典項
- Python - 修改字典項
- Python - 新增字典項
- Python - 刪除字典項
- Python - 字典檢視物件
- Python - 迴圈遍歷字典
- Python - 複製字典
- Python - 巢狀字典
- Python - 字典方法
- Python - 字典練習
- Python 陣列
- Python - 陣列
- Python - 訪問陣列項
- Python - 新增陣列項
- Python - 刪除陣列項
- Python - 迴圈遍歷陣列
- Python - 複製陣列
- Python - 反轉陣列
- Python - 排序陣列
- Python - 合併陣列
- Python - 陣列方法
- Python - 陣列練習
- Python 檔案處理
- Python - 檔案處理
- Python - 寫入檔案
- Python - 讀取檔案
- Python - 重新命名和刪除檔案
- Python - 目錄
- Python - 檔案方法
- Python - OS 檔案/目錄方法
- Python - OS 路徑方法
- 面向物件程式設計
- Python - OOPs 概念
- Python - 類 & 物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝類
- Python - 列舉
- Python - 反射
- Python 錯誤 & 異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except 塊
- Python - try-finally 塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀 try 塊
- Python - 使用者自定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python 多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 加入執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python 同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python 網路程式設計
- Python - 網路程式設計
- Python - Socket 程式設計
- Python - URL 處理
- Python - 泛型
- Python 庫
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 雜項
- Python - 日期 & 時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI 程式設計
- Python - XML 處理
- Python - GUI 程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUI
- Python 高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類進行超程式設計
- Python - 模擬和存根
- Python - 猴子補丁
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python 有用資源
- Python - 問答
- Python - 線上測驗
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 有用資源
- Python - 討論
- Python 編譯器
- NumPy 編譯器
- Matplotlib 編譯器
- SciPy 編譯器
Python - 檔案 I/O
本章涵蓋了 Python 中所有可用的基本 I/O 函式。有關更多函式,請參閱標準 Python 文件。
列印到螢幕
輸出最簡單的方法是使用print語句,您可以在其中傳遞以逗號分隔的零個或多個表示式。此函式將您傳遞的表示式轉換為字串,並將結果寫入標準輸出,如下所示:
#!/usr/bin/python print "Python is really a great language,", "isn't it?"
這會在您的標準螢幕上產生以下結果:
Python is really a great language, isn't it?
讀取鍵盤輸入
Python 提供了兩個內建函式來從標準輸入讀取一行文字,預設情況下來自鍵盤。這些函式是:
- raw_input
- input
raw_input 函式
raw_input([prompt]) 函式從標準輸入讀取一行並將其作為字串返回(刪除尾隨換行符)。
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
這會提示您輸入任何字串,它會將相同的字串顯示在螢幕上。當我輸入“Hello Python!”時,其輸出如下所示:
Enter your input: Hello Python Received input is : Hello Python
input 函式
input([prompt]) 函式等效於 raw_input,除了它假定輸入是一個有效的 Python 表示式並將計算結果返回給您。
#!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str
這將針對輸入的輸入產生以下結果:
Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40]
開啟和關閉檔案
到目前為止,您一直在讀取和寫入標準輸入和輸出。現在,我們將瞭解如何使用實際的資料檔案。
Python 預設提供處理檔案所需的基本函式和方法。您可以使用檔案物件執行大部分檔案操作。
open 函式
在讀取或寫入檔案之前,您必須使用 Python 的內建open()函式開啟它。此函式建立一個檔案物件,該物件將用於呼叫與其關聯的其他支援方法。
語法
file object = open(file_name [, access_mode][, buffering])
以下是引數詳細資訊:
file_name - file_name 引數是一個字串值,包含您要訪問的檔案的名稱。
access_mode - access_mode 確定必須以何種模式開啟檔案,即讀取、寫入、追加等。下表給出了所有可能值的完整列表。這是一個可選引數,預設檔案訪問模式是讀取 (r)。
buffering - 如果 buffering 值設定為 0,則不進行緩衝。如果 buffering 值為 1,則在訪問檔案時執行行緩衝。如果您將 buffering 值指定為大於 1 的整數,則將使用指示的緩衝區大小執行緩衝操作。如果為負數,則緩衝區大小為系統預設值(預設行為)。
以下是開啟檔案的不同模式的列表:
序號 | 模式 & 描述 |
---|---|
1 | r 僅開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。 |
2 | rb 以二進位制格式僅開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。 |
3 | r+ 開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
4 | rb+ 以二進位制格式開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
5 | w 僅以寫入方式開啟檔案。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。 |
6 | wb 以二進位制格式僅以寫入方式開啟檔案。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。 |
7 | w+ 以寫入和讀取兩種方式開啟檔案。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案以進行讀取和寫入。 |
8 | wb+ 以二進位制格式以寫入和讀取兩種方式開啟檔案。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案以進行讀取和寫入。 |
9 | a 以追加方式開啟檔案。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案以進行寫入。 |
10 | ab 以二進位制格式以追加方式開啟檔案。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案以進行寫入。 |
11 | a+ 以追加和讀取兩種方式開啟檔案。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案以進行讀取和寫入。 |
12 | ab+ 以二進位制格式以追加和讀取兩種方式開啟檔案。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案以進行讀取和寫入。 |
file 物件屬性
一旦檔案被開啟並且您擁有一個 file 物件,您就可以獲取與該檔案相關的各種資訊。
以下是與檔案物件相關的所有屬性的列表:
序號 | 屬性 & 描述 |
---|---|
1 | file.closed 如果檔案已關閉,則返回 True,否則返回 False。 |
2 | file.mode 返回開啟檔案的訪問模式。 |
3 | file.name 返回檔名。 |
4 | file.softspace 如果 print 需要顯式空格,則返回 False,否則返回 True。 |
示例
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name print "Closed or not : ", fo.closed print "Opening mode : ", fo.mode print "Softspace flag : ", fo.softspace
這將產生以下結果:
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
close() 方法
file 物件的 close() 方法重新整理任何未寫入的資訊並關閉檔案物件,此後無法再進行寫入。
當檔案引用物件被重新分配到另一個檔案時,Python 會自動關閉檔案。建議使用 close() 方法關閉檔案。
語法
fileObject.close()
示例
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
這將產生以下結果:
Name of the file: foo.txt
讀取和寫入檔案
file 物件提供了一組訪問方法來簡化我們的操作。我們將瞭解如何使用 read() 和 write() 方法來讀取和寫入檔案。
write() 方法
write() 方法將任何字串寫入開啟的檔案。需要注意的是,Python 字串可以包含二進位制資料,而不僅僅是文字。
write() 方法不會在字串末尾新增換行符 ('\n'):
語法
fileObject.write(string)
此處,傳遞的引數是要寫入開啟的檔案的內容。
示例
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
上述方法將建立 foo.txt 檔案,並將給定內容寫入該檔案,最後關閉該檔案。如果您開啟此檔案,它將包含以下內容。
Python is a great language. Yeah its great!!
read() 方法
read() 方法從開啟的檔案中讀取字串。需要注意的是,Python 字串可以包含二進位制資料,除了文字資料之外。
語法
fileObject.read([count])
此處,傳遞的引數是從開啟的檔案中讀取的位元組數。此方法從檔案開頭開始讀取,如果省略了 count,則嘗試儘可能多地讀取,可能直到檔案末尾。
示例
讓我們以一個我們上面建立的檔案 foo.txt 為例。
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
這將產生以下結果:
Read String is : Python is
檔案位置
tell() 方法告訴您檔案中的當前位置;換句話說,下一個讀取或寫入操作將發生在距檔案開頭這麼多位元組的位置。
seek(offset[, from]) 方法更改當前檔案位置。offset 引數指示要移動的位元組數。from 引數指定從哪個參考位置移動位元組。
如果 from 設定為 0,則表示使用檔案開頭作為參考位置;1 表示使用當前位置作為參考位置;如果設定為 2,則檔案末尾將作為參考位置。
示例
讓我們以一個我們上面建立的檔案 foo.txt 為例。
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close()
這將產生以下結果:
Read String is : Python is Current file position : 10 Again read String is : Python is
重新命名和刪除檔案
Python 的 os 模組提供了一些方法,可以幫助您執行檔案處理操作,例如重新命名和刪除檔案。
要使用此模組,您需要先匯入它,然後才能呼叫任何相關函式。
rename() 方法
rename() 方法接受兩個引數,當前檔名和新檔名。
語法
os.rename(current_file_name, new_file_name)
示例
以下是重新命名現有檔案 test1.txt 的示例:
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
remove() 方法
您可以使用 remove() 方法透過提供要刪除的檔名作為引數來刪除檔案。
語法
os.remove(file_name)
示例
以下是刪除現有檔案 test2.txt 的示例:
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
Python 中的目錄
所有檔案都包含在各種目錄中,Python 也能很好地處理這些目錄。os 模組有幾個方法可以幫助您建立、刪除和更改目錄。
mkdir() 方法
您可以使用 os 模組的 mkdir() 方法在當前目錄中建立目錄。您需要為此方法提供一個引數,其中包含要建立的目錄的名稱。
語法
os.mkdir("newdir")
示例
以下是建立當前目錄中名為 test 的目錄的示例:
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
chdir() 方法
您可以使用 chdir() 方法更改當前目錄。chdir() 方法接受一個引數,即您要設定為當前目錄的目錄的名稱。
語法
os.chdir("newdir")
示例
以下是進入 "/home/newdir" 目錄的示例:
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
getcwd() 方法
getcwd() 方法顯示當前工作目錄。
語法
os.getcwd()
示例
以下是提供當前目錄的示例:
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
rmdir() 方法
rmdir() 方法刪除作為方法引數傳遞的目錄。
在刪除目錄之前,應刪除其中的所有內容。
語法
os.rmdir('dirname')
示例
以下是刪除 "/tmp/test" 目錄的示例。需要提供目錄的完全限定名,否則它將在當前目錄中搜索該目錄。
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
檔案 & 目錄相關方法
有三個重要的來源,它們提供了廣泛的實用程式方法來處理和操作 Windows 和 Unix 作業系統上的檔案和目錄。它們如下: