ssssseceeceihishesce############文件操做###########python
Python 內置了讀寫文件的函數,用法和 C 是兼容的;hexo
操做系統不容許普通的程序直接操做磁盤,因此,讀寫文件就是請求操做系統打開一個文件對象(又稱文件描述符),而後,經過操做系統提供的接口從這個文件對象操做;ide
1.文件讀寫的過程:函數
(1). 打開文件spa
(2). 向文件中寫入內容;操作系統
(3). 關閉文件指針
先建立一個文件,而且寫入東西視頻
f=open('file') ##默認爲只讀對象
f.read()blog
f.close()
In [7]: f=open('file','w') ##只寫
In [8]: f.write('hello,word')
In [9]: f.read()
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
<ipython-input-9-bacd0e0f09a3> in <module>()
----> 1 f.read()
IOError: File not open for reading
In [10]: f.close()
2。其餘的文件讀寫幾種模式
r:能夠讀取文件內容,不能夠寫入,若是文件不存在則報錯
r+:可讀寫,依次覆蓋源文件的內容,若是文件不存在則報錯
w:能夠寫入文件內容,不能夠讀取,若是文件不存在則建立,並覆蓋原文件內容
w+:可讀寫,打開文件時直接刪除原文件的內容,若是文件不存在則建立
a:寫入,文件末尾追加,文件不存在則建立
a+:讀寫,文件追加,文件不存在則建立
編寫一個文件,將file文件中的hello替換成westos,並另存爲一文件hello.bak
f1=open('file','r')
f2=open('westos','a+')
str1=f1.read()
str2=str1.replace('hello','westos')
f2.write(str2)
f1.close()
f2.close()
二進制文件
要讀取二進制文件,好比圖片、視頻等等,用 'rb' 模式打開文件便可
>>> f = open('/root/test.jpg', 'rb')
>>> f.read()
>>>f.close()
5. f.flush()函數,將緩衝區的內容寫入到硬盤中
6. f.seek(offset[,whence]),offset 表示移動多少字節, whence 爲 1 的時候表示相對於當前位置移動的;當 2 的時候從文件的末尾日後移動,但不必定全部的平臺都支持;默認爲 0 表示從文件開頭日後移動
7. f.tell()函數,返回當前文件指針的偏移量:
8.with 用法
先建立一個lelpha文件,而且寫入多行字符
In [1]: with open('elepha') as f: ...: for line in f: ...: print line ...: qewwqqqqwqqwqqqqqrqqqrqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrrrrrrrtttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyy