python應用(7):輸入與輸出

如前文,流程是程序的主角,而流程通常都須要處理數據,那數據如何進到流程,而最終處理後的數據又如何表現,這就是流程的輸入與輸出的問題。html

本文介紹流程處理的數據的輸入與輸出。python

流程中的輸入,通常都會先保存在變量(即內存)中,而這個輸入,能夠來自於鍵盤(也稱爲標準輸入)、文件、socket、串口,等等。一樣,流程處理後的數據,也能夠從變量(即內存)輸出到屏幕(也稱爲標準輸出)、文件、socket、串口,等等。數據結構

這裏我只介紹從鍵盤或文件進行輸入,以及輸出到屏幕或文件。對於socket或串口,另找時機再行介紹。socket

(1)從鍵盤輸入

這是常見的程序交互,能夠使用raw_input或input函數來實現。函數

raw_input是原封不動地讀取鍵盤的輸入,input函數則嘗試對輸入進行運算再返回。spa

input函數能夠輸入數字、算術表達式、函數或返回數據結構的語句等,input函數處理後再返回內容。code

input函數不能輸入處理不了的字符串。htm

示例以下:
raw_input與input的示例
raw_input與input的示例2blog

(2)從文件輸入

也就是讀取文件的內容。遞歸

如下是常常遇到的文件操做的示例--讀取文件的內容,而且打印出來:
讀取文件內容示例1
讀取文件內容示例2

在使用open函數打開一個文件時,第一個參數是文件名,第二個參數是訪問模式。默認的訪問模式是隻讀,也就是'r'。訪問模式有可能會常常用到,這裏給出全部訪問模式的含義的截圖,圖片源於 http://www.runoob.com/python/...
文件的訪問模式

(3)輸出到屏幕

輸出到屏幕,也叫標準輸出,使用的函數就是print。基本全部python示例都涉及到print的使用,這裏再也不單獨示例。

(4)輸出到文件

輸出到文件,就是寫文件。

在open文件時,使用帶有寫的訪問模式,以後再使用write函數來寫文件,示例以下:
寫文件示例1

以上,介紹了python流程中數據的輸入與輸出,其中包括了文件內容的操做,包括讀跟寫。

在實際應用中,除了文件的讀寫,文件的重命名、刪除,還有文件夾的操做(好比遍歷、建立、刪除等)也是常常遇到的處理環節,因此這裏再作一些介紹。

(a)文件的重命名與刪除

使用os模塊,導入這個模塊:

import os

文件重命名,使用os.rename函數,好比:
文件重命名示例

文件的刪除,使用os.remove函數,好比:
文件刪除示例

(b)文件夾遍歷

遍歷文件夾以查找全部文件,通常有兩個辦法,一個是使用os.listdir函數,另外一個是使用os.walk函數,這裏分別演示一下。

小程的目錄結構是這樣的:
目錄結構

使用os.listdir,寫一個遞歸查找函數,代碼與效果以下:
listdir遍歷文件

另外一個辦法,是使用os.walk函數,使用這個函數的代碼能夠很簡潔,代碼與效果以下:
walk遍歷文件

(c)文件夾建立與刪除

文件夾建立,使用os.mkdir函數。

文件夾刪除,使用os.rmdir或shutil.rmtree函數。

示例代碼與效果以下:
文件夾建立與刪除

須要注意,os.rmdir只能用於空目錄的刪除,若是目錄非空會致使執行異常。對於空目錄,或非空目錄,均可以使用shutil.rmtree函數來刪除,好比:

shutil.rmtree('2')

另外,刪除不存在的目錄會致使異常,建立已經存在的目錄也會致使異常,因此,在操做以前能夠先判斷目錄是否存在,好比:

import os, shutil
if os.path.exists('2'):
    shutil.rmtree('2')
if not os.path.exists('3'):
    os.mkdir('3')

上介紹了文件與文件夾的常見操做,對於沒有介紹到的操做(好比os.getcwd、os.path.abspath等),你能夠在實際使用過程當中再進行查閱。


好了,總結一下,本文重點介紹了python流程的數據的輸入與輸出,包括從鍵盤或文件輸入,輸出到屏幕或文件,文章也介紹了文件與文件夾的常見操做,包括文件重命名、文件刪除、文件遍歷、文件夾的建立與刪除等(從某個角度來講,文件夾也是文件)。

相關文章
相關標籤/搜索