File

day9:1030

一、(文件路徑,操作模式(默認讀模式)(r,w,a,b),編碼(utf-8))
f = open('歌詞','w',encoding'utf-8') 指定爲’utf-8'中文就不會報錯
f:文件操作符 文件句柄 文件操作符f file f_obj f_handler fh
open打開文件依賴操作系統提供的途徑,操作系統有自己的編碼,open在打開文件的時候默認使用操作系統編碼:win:gbk mac/linux: utf-8

f = open('歌詞','w') 以寫模式打開文件(會清空原有內容)
f.wrinte('sunv') 寫內容到文件
f.close() 關閉文件 (必須寫)
print(f.writable()) :判斷文件是否可寫(返回bool值)
print(f.readable()) :判斷文件是否可讀(返回bool值)
del f :主動釋放了一個py程序內存中的變量 (可寫可不寫)
r+:可讀可寫
1、先讀後寫:寫是追寫
2、先寫後讀:從頭開始寫(會出錯)
w+:可寫可讀(文件直接清空,雖然可添加,但是讀取的時候需要移動光標)
a+:追加寫,也得移動光標
一般情況下,要麼讀,要麼 寫,很少讀寫一起用
常用的是:r、w、a、
rb、wb、ab(不需要指定編碼)
f.read(n):讀n個字符(默認全讀)
seek:
seek(n):移動光標到指定位置(字節),有返回值n
seek(0) :移動到最開始
seek(0,2):移動到最末尾
# seek(0,1) :以當前位置移動(先不用了)
tell:告訴你當前光標的位置(字節)(換行符兩個字節)
truncate(n):從文件開始的位置只保留n個字節的內容(seek在前面也沒用)
二、
1、文件與py文件的執行在相同的路徑下,直接讀寫,否則用絕對路徑。
2、文件的路徑,需要用取消轉譯的方式來表示:
3、如果以寫的文件的方式打開一個文件,那麼不存在的就會自動創建,存在的文件之前的內容會清空。
、讀文件(含指針:前面讀完後面不再讀):
read() : r模式按字符讀 rb: 按字節讀
①一次性的讀出文件的所有內容(一下整體讀不好,佔內存)
content = f.read()
print(content)
②讀一部分(read(n),指定讀五個單位)
print(read(5))
③一行一行讀readline(strip:出掉空格,製表符,換行符)
缺:不知道讀到什麼位置文件結束
content = f.readline(讀出來是字符串)
print(content)
④readlines返回一個列表,將文件中的每一行作爲列表中的每一項返回一個列表(一下整體讀不好,佔內存)
f.readlines(讀出來是列表)
⑤讀:最常用(line拿到的每一項就是每一行)
for line in f:
print(line.strip)

b的打開方式(bytes):
讀圖片、音樂、視頻等任何文件 傳輸,上傳,下載 網絡編程
四、文件的修改、刪除
1.創建一個新文件
2.把原來的文件中的內容讀出來
3.操作讀出來的字符串,把字符串中的內容替換掉
4.把替換後的內容寫到新文件裏
5.刪除源文件,新文件重命名成源文件的名字

 f = open('源文件',encoding='utf-8') # 
    f2 = open('新文件','w',encoding='utf-8') #
    for line in f:
        new_line = line.replace('原來','現在')
        f2.write(new_line)
    f.close() 
    f2.close()
    import os
    os.remove('源文件')
    os.rename('新文件','源文件')
五、修改文件
1.read()
2.for循環的形式逐行修改
3.只修改一行的內容,其他不變 -- 擴展例子(儘自己能力掌握)
六、with語句 == 文件的打開和關閉(根據個人喜好)
作業、
購物車的商品都寫在文件裏,完成文件解析後再做購物車
七、
對於py3環境:r:Python將會按照編碼格式進行解析,read()操作返回的是str
rb:也即binary mode,read()操作返回的是bytes


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章