一蚁滋、字符集
文件打開時言缤,默認(rèn)使用操作系統(tǒng)的字符集打開判哥,windows默認(rèn)的字符集是GBK,但pycharm默認(rèn)識別的字符集是UTF-8,這樣如果打開時不指定UTF-8字符集谤绳,會提示字符集錯誤占锯;
類似于,pycharm只認(rèn)識UTF-8語言缩筛,文件相當(dāng)于一本書消略,默認(rèn)使用GBK語言展示,這樣pycharm就不認(rèn)識了瞎抛,只有指定文件使用UTF-8語言展示艺演,pycharm才認(rèn)識;
二桐臊、打開文件
1胎撤、直接指定地址打開文件并將內(nèi)容賦值給變量
data=open("e:\\123.txt").read()
2、指定字符集打開并將打開讀取的內(nèi)容賦值給變量
data=open("e:\\123.txt",encoding=("gbk")).read()
3断凶、將打開的文件句柄賦值給變量
f=open("e:\\123.txt",encoding=("gbk"))
4伤提、read方法會一次行將文件內(nèi)容全部讀取出來,并將文件指針指向文件末尾懒浮,當(dāng)再次使用read方法讀取這個文件時飘弧,因為文件指針指向文件末尾,所以讀取的內(nèi)容為空砚著;
5次伶、文件默認(rèn)打開方式為只讀模式;
6稽穆、r 讀模式不能寫冠王,w 寫模式不能讀,a 追加模式不能讀舌镶,r+讀追加模式柱彻,w+寫讀模式,a+追加讀模式餐胀,rb 二進(jìn)制讀模式(網(wǎng)絡(luò)傳輸)哟楷,wb 二進(jìn)制寫模式
7、w模式是創(chuàng)建一個新文件寫入否灾,如果文件已存在則會覆蓋源文件
f=open("e:\\123.txt",'w',encoding=("gbk"))
8卖擅、文件句柄默認(rèn)使用迭代器模式
for line in f:
print(line)
9、f.tell()查詢文件指針當(dāng)前所在位置,返回字符數(shù)惩阶;
10挎狸、f.seek(字符位置)設(shè)置文件指針位置,0為文件起始位置断楷;
11锨匆、f.encoding 返回當(dāng)前文件打開使用的字符集;
12冬筒、f.fileno()? ? 返回文件句柄在內(nèi)存中的編號恐锣,操作系統(tǒng)打開的文件的編號,不是內(nèi)存地址
13账千、f.seekable? ? 返回文件是否可以設(shè)置文件指針位置侥蒙;
14、f.readable? ? 判斷文件是否可讀匀奏;
15鞭衩、f.writeable? ? 判斷文件是否可寫;
16娃善、f.flush()? ? 將寫入的數(shù)據(jù)強(qiáng)制從內(nèi)存緩存中寫到硬盤论衍;
例:模擬進(jìn)度條
import sys,time
for i in rang(20):
? ? sys.stdout.write("#")
? ? sys.stdout.flush()
????time.sleep(0.1)
17聚磺、f.closed? ? 返回文件是否關(guān)閉坯台;
18、f.truncate(字符數(shù))? ? 從指定字符位置往后清空瘫寝;
19蜒蕾、網(wǎng)絡(luò)傳輸只能是二進(jìn)制模式