作者從事的工作是嵌入式,對于很多人來說,嵌入式是個陌生的概念薯酝,嵌入式是一個和硬件打交道的行業(yè)狮杨,簡兒言之就是操作硬件母截,對于高級語言如c++/golang等是無法直接編譯成可執(zhí)行文件,python這種解釋型語言就更加無法直接控制硬件了橄教,無法直接控制清寇,那就是說可以間接控制咯喘漏,是的,不過這些都是建立在人們將硬件抽象成設(shè)備文件的基礎(chǔ)上的华烟,使用高級語言控制硬件轉(zhuǎn)變?yōu)閷υO(shè)備文件的讀寫等操作了翩迈,比如BBB、樹莓派等盔夜。本文只是針對文件的正常讀寫操作负饲,不涉及硬件控制。
Open
這一步是不可以省略的喂链,要獲得對一個文件的控制權(quán)返十,首先需要通過open(filename,mode)返回一個file object。
The first argument is a string containing the filename. The second argument is another string containing a few characters describing the way in which the file will be used.?mode?can be'r'when the file will only be read,'w' for only writing (an existing file with the same name will be erased), and 'a' opens the file for appending; any data written to the file is automatically added to the end.'r+' opens the file for both reading and writing. The?mode?argument is optional; 'r' will be assumed if it’s omitted ? ?
接下來我們用實例來證明椭微。我們先創(chuàng)建一個test.txt在里面輸入how are you洞坑!,然后執(zhí)行編寫fileoperation.py蝇率,py內(nèi)容如下: ?
fd = open("test.txt","r")
print(fd.read())
然后執(zhí)行python fileopeartion.py迟杂。 結(jié)果如下:
注意 text.txt和fileoperation.py文件實在同一個文件夾的。此時如果我們執(zhí)行fd.write()瓢剿,因為我們沒有權(quán)限逢慌。 讀者可以自行嘗試。
Read And Readline():
讀模式分為兩種间狂,讀整個file或者單行讀攻泼。fd.read() 等效于 :
for line in fd:
? print(line,end=' ')
而fd.readline()表示讀取當前行,執(zhí)行一個fd.readline()之后鉴象,再執(zhí)行下一個fd.readline則讀取下一行忙菠,每執(zhí)行一次,讀取一行纺弊。
Close()
對一個文件的使用之后一定要記得使用fd.close()來關(guān)閉牛欢。
with open("xxx","x") as fd:
It is good practice to use the with?keyword when dealing with file objects. This has the advantage that the file is properly closed after its suite finishes, even if an exception is raised on the way. It is also much shorter than writing equivalent?try-finally?blocks:
使用這種形式來打開一個文件的方式的原因在于:1、這樣如果open出錯也能確保將其關(guān)閉2淆游、對于同樣有保護功能的try-finally方式傍睹,采用with的方式則更加間接快速。
以上都是基于文本模式的時候執(zhí)行的犹菱,那么也有二進制的模式打開拾稳,則需要使用關(guān)鍵字符‘b’.文中就不再陳述,有需要的請自行g(shù)oogle:www.python.org/3/tutotial.