python open 文件操作


open/文件操作
f=open('/tmp/hello','w')

#open(路徑+文件名,讀寫模式)

#讀寫模式:r只讀,r+讀寫,w新建(會覆蓋原有文件),a追加,b二進制文件.常用模式

如:'rb','wb','r+b'等等

讀寫模式的類型有:

rU 或 Ua 以讀方式打開, 同時提供通用換行符支持 (PEP 278)
w     以寫方式打開,
a     以追加模式打開 (從 EOF 開始, 必要時創建新文件)
r+     以讀寫模式打開
w+     以讀寫模式打開 (參見 w )
a+     以讀寫模式打開 (參見 a )
rb     以二進制讀模式打開
wb     以二進制寫模式打開 (參見 w )
ab     以二進制追加模式打開 (參見 a )
rb+    以二進制讀寫模式打開 (參見 r+ )
wb+    以二進制讀寫模式打開 (參見 w+ )
ab+    以二進制讀寫模式打開 (參見 a+ )


注意:

1、使用'W',文件若存在,首先要清空,然后(重新)創建,

2、使用'a'模式 ,把所有要寫入文件的數據都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,將自動被創建。



f.read([size]) size未指定則返回整個文件,如果文件大小>2倍內存則有問題.f.read()讀到文件尾時返回""(空字串)

file.readline() 返回一行

file.readline([size]) 返回包含size行的列表,size 未指定則返回全部行

for line in f: print line #通過迭代器訪問

f.write("hello\n") #如果要寫入字符串以外的數據,先將他轉換為字符串.

f.tell() 返回一個整數,表示當前文件指針的位置(就是到文件頭的比特數).

f.seek(偏移量,[起始位置])

用來移動文件指針

偏移量:單位:比特,可正可負

起始位置:0-文件頭,默認值;1-當前位置;2-文件尾

f.close() 關閉文件

換行符帶來的煩惱
  當你用二進制模式將帶有換行符的字符串寫入txt文件時,數據存儲是正確的,但是當用windows平台的記事本程序打開時,你看到的換行符確實一個個的小黑塊,但是,用文本模式,就不存在這樣的問題。
  在這里,涉及到了不同平台由於編碼的問題,而對換行符有不同的識別。unix或者linux系統識別\n為換行符的標識,但是windows平台的編碼,對\n不予理睬。
但是python自身帶有轉化功能,用文本模式的時候,你不會看到由於平台不同而造成的換行效果不同,但是,二進制模式的時候,python便不會再去轉化,是什么,就寫進去什么,此時的換行符,再用文本模式打開,windows下就不識別‘\n'換行符了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM