io程式設計
io在計算機中指的是input/output,其中的輸入輸出是以cpu為物件來講的,由於cpu和記憶體的速度遠高於外設的速度,所以在io程式設計中,就存在著嚴重的速度不匹配問題。解決這個問題有兩種思路:
一是讓cpu和記憶體等待著外設,這種成為同步io,另一種是cpu不等待,繼續執行下面的**,這種稱為非同步io。他們的區別就在於是否等待io執行的結果。很明顯使用非同步io來編寫程式的效能遠高於同步io,但是非同步io的缺點是程式設計模型複雜。想想看,你得知道什麼時候通知你「漢堡做好了」,而通知你的方法也各不相同。如果是服務員跑過來找到你,這是**模式,如果服務員發簡訊通知你,你就得不停地檢查手機,這是輪詢模式。總之,非同步io的複雜度遠遠高於同步io。
可以再命令列中使用作業系統提供的命令來操作檔案和目錄,而再程式中進行這樣的操作本質上也只是呼叫作業系統提供的介面,python內建的os模組可以直接呼叫作業系統提供的介面
>>>import os>>>os.name#檢視作業系統的型別'nt'代表的windows
>>>os.uname()檢視作業系統的詳細資訊,再windows不提供
操作檔案和目錄的函式一部分在os模組中,一部分則在os.path中
# 檢視當前目錄的絕對路徑:>>> os.path.abspath('.')
'/users/michael'
# 在某個目錄下建立乙個新目錄,首先把新目錄的完整路徑表示出來
>>> os.path.join('/users/michael', 'testdir')#只是合成路徑,並不要直接拼接字串,這樣可以處理不同作業系統的路徑分隔符
'/users/michael/testdir'
# 然後建立乙個目錄:
>>> os.mkdir('/users/michael/testdir')
# 刪掉乙個目錄:
>>> os.rmdir('/users/michael/testdir')
只是合成路徑,並不要直接拼接字串,而是呼叫os.path.join(),這樣可以處理不同作業系統的路徑分隔符,拆分路徑使用os.path.split(),會把最後乙個給分割出來
>>> os.path.split('/users/michael/testdir/file.txt')('/users/michael/testdir', 'file.txt')
這些合併、拆分路徑的函式並不要求目錄和檔案要真實存在,它們只對字串進行操作。
# 對檔案重新命名:>>> os.rename('test.txt', 'test.py')
# 刪掉檔案:
>>> os.remove('test.py')
建立檔案,在open()中如果檔案不存在,就會建立
複製檔案由shutil模組提供的copyfile()函式,這個模組提供其他一些非常使用的操作,可以作為對os模組的補充
環境變數
作業系統中定義的環境變數可以通過os.environ變數訪問,可以通過os.environ.get('key')獲取某個變數的值
python IO程式設計
io程式設計 檔案讀寫 f open text.txt r 標示符 r 表示讀 str f.read print str f.close 如果檔案不存在,open 函式就會丟擲乙個ioerror的錯誤,並且給出錯誤碼和詳細的資訊告訴你檔案不存在。最後一步是呼叫close 方法關閉檔案。檔案使用完畢後...
Python IO程式設計
io在計算機中指input output,也就是輸入和輸出。由於程式和執行時資料是在記憶體中駐留,由cpu這個超快的計算核心來執行,涉及到資料交換的地方,通常是磁碟 網路等,就需要io介面。只要進行資料交換,網路傳輸等行為都會產生io操作。同步io cpu等著,也就是程式暫停執行後續 等100m的資...
PythonIO程式設計
1.檔案讀寫 python內建了讀寫檔案的函式,用法和c是相容的。讀寫檔案前,我們先必須了解一下,在磁碟上讀寫檔案的功能都是由作業系統提供的,現代作業系統不允許普通的程式直接操作磁碟,所以,讀寫檔案就是請求作業系統開啟乙個檔案物件 通常稱為檔案描述符 然後,通過作業系統提供的介面從這個檔案物件中讀取...