8.1 文件:因?yàn)槎?,所以永?br>CPU-內(nèi)存 CPU-硬盤 ========================================================== 8.1.1打開文件 open()函數(shù)打開并且返回文件對(duì)象 open()有很多參數(shù),作為初學(xué)者,先關(guān)注第一和第二個(gè)參數(shù)即可。 open(帶路徑的文件名,指定文件打開模式) ---------------------------------------------- "r"只讀模式(默認(rèn)) "w"寫入模式 覆蓋已經(jīng)存在的文件 "x"如果文件存在,此模式打開引發(fā)異常 "a"以寫入模式打開,文件若存在,末尾追加寫入 "b"以二進(jìn)制打開文件 "t"以文本模式打開(默認(rèn)) " "可讀寫模式 "U"通用換行符支持 ---------------------------------------------- f=open("命令.txt") 沒有消息就是好消息,文件成功被打開了。 ============================================================ 8.1.2 文件對(duì)象的方法 close()關(guān)閉文件 read(size=-1)從文件讀取size個(gè)字符,未給定或者為負(fù)值時(shí)候,讀取剩余所有字符, 作為字符串返回 readline()從文件中讀取一整行字符串 write(str)將字符串str寫入文件 writelines(seq)向文件寫入字符串序列,seq應(yīng)該是一個(gè)返回字符串的可迭代對(duì)象 seek(offset,from)在文件中移動(dòng)指針,從from(0-起始 1-當(dāng)前 2-末尾)偏移offset個(gè)字節(jié) tell()返回當(dāng)前在文件中的位置 ============================================================== 8.1.3文件的關(guān)閉 close()用于關(guān)閉文件。忘記關(guān)閉Python最后會(huì)自動(dòng)關(guān)閉文件。但是防止斷電丟失數(shù)據(jù),養(yǎng)成 使用完成后及時(shí)關(guān)閉文件的習(xí)慣。 8.1.4文件的讀取和定位 文件的讀取方法有很多:用文件對(duì)象的read()和readline()方法。也可以直接list(f)或者迭代 來讀取。 read()是按照字節(jié)為單位讀取,如果不設(shè)置參數(shù),會(huì)全部讀取,指針指向文件末尾。 tell()方法可以告訴你當(dāng)前文件指針的位置。 代碼如下 f=open("命令.txt",encoding="UTF-8") print(f.read()) print(f.tell()) print(f.seek(0,0)) print(f.read(4)) print(f.tell()) ---------------------------- 6. setdefault()方法和get()方法相似,區(qū)別是get()找不到返回空或指定值 而setdefault()方法在找不到的時(shí)候,進(jìn)行設(shè)置添加值。 a={1:"one",2:"two",3:"three",4:"four"} print(a.setdefault(3)) print(a.setdefault(5)) 247 0 6. s 4 =========================== f=open("命令.txt",encoding="UTF-8") print(f.readline()) ------------------------readline()讀取一行,直到遇到\n為止 6. setdefault()方法和get()方法相似,區(qū)別是get()找不到返回空或指定值 ======================================== 列表也很強(qiáng)大,什么都可以往里面放! print(list(f)) ------------------ ['6. setdefault()方法和get()方法相似,區(qū)別是get()找不到返回空或指定值\n', '而setdef...] ======================================================== 用了列表去裝載后,可以發(fā)現(xiàn),元素個(gè)數(shù)由行數(shù)決定了,列表元素個(gè)數(shù)=行數(shù)。 f=open("命令.txt",encoding="UTF-8") f.seek(0,0) lines=list(f) for each in lines: print(each) ------------------上述沒有錯(cuò),只是有點(diǎn)酒精燈燒開水----效率低。因f本身支持迭代! f=open("命令.txt",encoding="UTF-8") f.seek(0,0) for each in f: print(each) ---------------------- 6. setdefault()方法和get()方法相似,區(qū)別是get()找不到返回空或指定值
而setdefault()方法在找不到的時(shí)候,進(jìn)行設(shè)置添加值。
a={1:"one",2:"two",3:"three",4:"four"}
print(a.setdefault(3))
print(a.setdefault(5))
===================================================================== 8.1.5 文件的寫入 如果要寫入文件,請(qǐng)確保打開之前模式有"w"或"a",否則出錯(cuò) f=open(r"C:\Users\Daodantou\Desktop\record.txt",encoding="UTF-8") f.write("中華人民共和國萬歲") ------------- 寫入失敗 ----------------- Traceback (most recent call last): File "C:/Users/Daodantou/PycharmProjects/s14/day7/t2.py", line 2, in <module> f.write("中華人民共和國萬歲") io.UnsupportedOperation: not writable =================================================改寫代碼 f=open(r"C:\Users\Daodantou\Desktop\record.txt","a",encoding="UTF-8") f.write("中華人民共和國萬歲") f.close() -------------------------------------------------------- ======我就是個(gè)跟屁蟲。=======中華人民共和國萬歲 ========================================================================== f=open(r"C:\Users\Daodantou\Desktop\record.txt","w",encoding="UTF-8") f.write("中華人民共和國萬歲") f.close() --------------------------- 中華人民共和國萬歲
|