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