Python: IO編程
在計(jì)算機(jī)中,IO是指輸入和輸出,也就是數(shù)據(jù)的讀取和寫入。這里主要針對內(nèi)存進(jìn)行操作。 輸入:將數(shù)據(jù)從外部設(shè)備(如磁盤、網(wǎng)絡(luò)等)寫入到內(nèi)存中。 輸出:將數(shù)據(jù)從內(nèi)存中讀取出來,由CPU調(diào)用執(zhí)行。 程序
在計(jì)算機(jī)中,IO是指輸入和輸出,也就是數(shù)據(jù)的讀取和寫入。這里主要針對內(nèi)存進(jìn)行操作。
輸入:將數(shù)據(jù)從外部設(shè)備(如磁盤、網(wǎng)絡(luò)等)寫入到內(nèi)存中。
輸出:將數(shù)據(jù)從內(nèi)存中讀取出來,由CPU調(diào)用執(zhí)行。
程序代碼和運(yùn)行時數(shù)據(jù)都是存儲在內(nèi)存中的,當(dāng)涉及到數(shù)據(jù)交換的地方,通常需要使用IO接口。
讀文件
讀取文件是通過請求操作系統(tǒng)打開一個文件對象(通常稱為文件描述符),然后通過操作系統(tǒng)提供的接口從這個文件對象中讀取數(shù)據(jù)。
以下是三種讀取文件的方法:
def read_1():
file_handle open("c:/test.txt", 'r')
file_()
file_()
# 文件使用完畢后必須關(guān)閉,因?yàn)槲募ο髸加貌僮飨到y(tǒng)的資源,
# 并且操作系統(tǒng)同一時間能打開的文件數(shù)量也是有限的
def read_2():
try:
file_handle open("c:/test.txt", 'r')
finally:
file_()
# 保證文件句柄能一定得到關(guān)閉
def read_3():
# read_2方法的簡化寫法,會自動調(diào)用close方法
with open("c:/test.txt", 'r') as file_handle:
file_()
read():會一次性讀取文件的全部內(nèi)容。如果文件非常大,內(nèi)存可能會不夠用。為了安全起見,可以反復(fù)調(diào)用read(size)方法,每次最多讀取size個字節(jié)的內(nèi)容。如果文件較小,read()是最方便的方法。另外還有:
readline():每次讀取一行內(nèi)容。
readlines():一次讀取所有內(nèi)容并按行返回一個列表。
對于配置文件,調(diào)用readlines()是最方便的。
寫文件
與讀文件類似,打開文件后,通過file_handle.write("Hello, world!")就可以將內(nèi)容寫入文件中。在寫文件時,操作系統(tǒng)通常會先將數(shù)據(jù)放入內(nèi)存緩存中,再在空閑時慢慢寫入磁盤。只有調(diào)用close()方法時,操作系統(tǒng)才保證將未寫入的數(shù)據(jù)全部寫入磁盤。如果忘記調(diào)用close(),可能導(dǎo)致部分?jǐn)?shù)據(jù)寫入磁盤,剩余數(shù)據(jù)丟失。
因此,在進(jìn)行文件寫入操作后一定要記得調(diào)用close()方法,以確保數(shù)據(jù)完整保存。
以上是關(guān)于Python IO編程的相關(guān)介紹和示例代碼。