您好,登錄后才能下訂單哦!
簡介
在之前的編程中,我們的信息打印,數(shù)據(jù)的展示都是在控制臺(命令行)直接輸出的,信息都是一次性的沒有辦法復用和保存以便下次查看,今天我們將學習Python的輸入輸出,解決以上問題。
復習
得到輸入用的是input(),完成輸出用的是print(),之前還有對字符串的操作,這些我們都可以使用help()命令來查看具體的使用方法。
文件
在Python2的時候使用的是file來創(chuàng)建一個file類,對它進行操作。Python3中去掉了這個類(我沒有查到,只是猜測),使用open來打開一個文件,返回一個IO的文本包裝類,之后我們使用這個類的方法對它進行操作。
使用文件
poem = '''\ Programming is fun when the work is done if you wanna make your work also fun: use Python! ''' #poem1 = '''liu''' #讀模式('r')、寫模式('w')或追加模式('a')。 #如果有文件就讀取,沒有就創(chuàng)建 f = open('poem.txt','w') #f = open('poem.txt','a') f.write(poem) #f.write(poem1) f.close() type(f) print(f) f = open('poem.txt','r') while True: line = f.readline() if len(line) == 0: break print(line, end='') f.close()
運行結(jié)果
如何工作
open方法第一個參數(shù)是你的文件名和路徑,我的文件和程序在同一個文件夾下所以只需要填寫文件名即可,第一個參數(shù)后面可以跟很多參數(shù)來完成不同的操作,而且很多參數(shù)是由默認值的,通過我們之前對函數(shù)的學習知道這樣做的好處。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) ========= =============================================================== Character Meaning --------- --------------------------------------------------------------- 'r' open for reading (default) 'w' open for writing, truncating the file first 'x' create a new file and open it for writing 'a' open for writing, appending to the end of the file if it exists 'b' binary mode 't' text mode (default) '+' open a disk file for updating (reading and writing) 'U' universal newline mode (deprecated) ========= ===============================================================
這個mode參數(shù)是主要的參數(shù),大家記住這個就可以,mode參數(shù)可以很多個參連在一起使用比如open('text1.txt','wb')這個就是使用二進制寫數(shù)據(jù),一會就會使用到。
這個文件是不用手動創(chuàng)建的,在你的路徑下有這個文件的話,就會打開這個文件,如果沒有會自動創(chuàng)建這個文件。
讀文件的時候使用的是循環(huán)讀取,使用包裝類的readline()方法,讀取每一行,當方法返回0時,表示文件讀取完成,破壞循環(huán)條件,關閉IO。
自動創(chuàng)建的文件。
儲存器
Python中提供了一個pickle模塊。通過這個模塊你可以在文件中存儲任何Python對象,你又可以從這個文件中吧對象取出。這被稱為持久的存儲對象。還有另一個模塊稱為cPickle,它的功能和pickle模塊完全相同,只不過它是用C語言編寫的,因此它的速度要快很多(比pickle快1000倍,Python3中取消使用)。這里將使用Pickle模塊。
使用import...as...語法可以用as后的字符代替as前的字符,模塊使用起來更簡潔。將數(shù)據(jù)保存到打開的文件中就是存儲,open一個文件,調(diào)用模塊的dump函數(shù),將數(shù)據(jù)存到文件中。使用模塊的load函數(shù)返回存儲的對象,這個過程叫做取存儲。
import pickle as p shoplistfile = 'shoplist.data' shoplist = ['apple','mango','carrot'] f = open(shoplistfile,'wb') #將數(shù)據(jù)寫入打開的文件中 p.dump(shoplist,f) f.close() del shoplist f = open(shoplistfile,'rb') storedlist = p.load(f) print(storedlist) print(__doc__)
運行結(jié)果
這里使用的就是二進制的寫入,讀取的時候也使用的二進制,和寫入的數(shù)據(jù)有關,這個大家多多留意。
Python的輸入與輸出就寫到這里,大家多多探索會有更多的知識等待你發(fā)掘。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。