階段01_基礎(chǔ)篇_day08_文件 file

文件 file

  • 文件的創(chuàng)建
f = open("./filedemo.txt", "w")
  • 文件讀取
f1 = open("./filedemo.txt")
f1.read()       # 讀取所有內(nèi)容
f1.read(6)     # 讀取N個字符
line = f1.readline()    # 讀一行
allline = f1.readlines()   # 讀取所有行汇鞭,返回一個列表饼疙;

# for循環(huán)讀取 (一般都用for循環(huán)來讀取文件其弊,有利于內(nèi)存)
for line in f1:
    oneline = line.rstrip("\n")
    print(oneline)
  • 文件寫入
    • f.write(string) 會把 string 的內(nèi)容寫入到文件中,并返回寫入的字符數(shù)椒拗。
    • 也可以用“wb”模式寫入二進制數(shù)據(jù)似将;
    • 用with代碼塊模式,會在執(zhí)行完代碼塊后自動關(guān)閉文件蚀苛;
with open(r".\tu1.jpg", "rb") as tu1:
    with open(r".\tu2.jpg", "wb") as tu2:
        for line1 in tu1:
            tu2.write(line1)
  • 文件追加
f = open(r".\filedemo.txt", "a")
f.write("\nappend content...")
f.close()
  • f.seek()

    • f.tell()` 返回一個整數(shù)在验,給出文件對象在文件中的當前位置,如果有中文堵未,有可能會報錯腋舌。因為如果是GBK中文是2個字節(jié),如是utf-8編碼渗蟹,一個中文是三個字節(jié)侦厚;
  • f.tell()

    • 返回一個整數(shù),給出光標在文件中的當前位置拙徽;
  • f.flush()

    • 把內(nèi)存里的內(nèi)容刷到硬盤,相當于保存;
  • with as
with open(r".\fread.txt", "r") as fread, open(r".\fwrite.txt", "w") as fwrite:
    # 就可以在此代碼塊里對這兩個文件對象進行操作诗宣;
    for line in fread:
        fwrite.write(line)
  • 文件的修改
import os
old_name = "old_file.txt"
new_name = "new_file.txt"
with open(r".\old_file.txt", "r", encoding="utf-8") as old_file, open(r".\new_file.txt", "w") as new_file:
    for line in old_file:
        if "o" in line:          # 如果一行里有需要替換的關(guān)鍵詞
            new_line = line.replace("o", "[o]")        # 替換關(guān)鍵詞
            new_file.write(new_line)                   # 寫到新文件
            continue                                   # 新的循環(huán)
        new_file.write(line)                           # 沒有進入if膘怕,就把原來的一行寫入新文件。
os.remove(old_name)                                    # 刪除原文件
os.renames(new_name, old_name)                         # 把新文件的文件名改成原原件名
  • file.truncate()
    • 清空文件所有內(nèi)容
    • 注意:僅當以 "r+" "rb+" "w" "wb" "wb+"等以可寫模式打開的文件才可以執(zhí)行該功能召庞,否則報錯
f = open(r".\old_file.txt", "w")
f.truncate()
f.close()
  • 文本模式
t 文本模式 (默認)岛心。
x 寫模式来破,新建一個文件,如果該文件已存在則會報錯忘古。
b 二進制模式徘禁。
+ 打開一個文件進行更新(可讀可寫)。
U 通用換行模式(不推薦)髓堪。
r 以只讀方式打開文件送朱。文件的指針將會放在文件的開頭。這是默認模式干旁。
rb 以二進制格式打開一個文件用于只讀驶沼。文件指針將會放在文件的開頭。這是默認模式争群。一般用于非文本文件如圖片等回怜。
r+ 打開一個文件用于讀寫。文件指針將會放在文件的開頭换薄。
rb+ 以二進制格式打開一個文件用于讀寫玉雾。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等轻要。
w 打開一個文件只用于寫入复旬。如果該文件已存在則打開文件,并從開頭開始編輯伦腐,即原有內(nèi)容會被刪除赢底。如果該文件不存在,創(chuàng)建新文件柏蘑。
wb 以二進制格式打開一個文件只用于寫入幸冻。如果該文件已存在則打開文件,并從開頭開始編輯咳焚,即原有內(nèi)容會被刪除洽损。如果該文件不存在,創(chuàng)建新文件革半。一般用于非文本文件如圖片等碑定。
w+ 打開一個文件用于讀寫。如果該文件已存在則打開文件又官,并從開頭開始編輯延刘,即原有內(nèi)容會被刪除。如果該文件不存在六敬,創(chuàng)建新文件碘赖。
wb+ 以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯普泡,即原有內(nèi)容會被刪除播掷。如果該文件不存在,創(chuàng)建新文件撼班。一般用于非文本文件如圖片等歧匈。
a 打開一個文件用于追加。如果該文件已存在砰嘁,文件指針將會放在文件的結(jié)尾件炉。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后般码。如果該文件不存在妻率,創(chuàng)建新文件進行寫入。
ab 以二進制格式打開一個文件用于追加板祝。如果該文件已存在宫静,文件指針將會放在文件的結(jié)尾。也就是說券时,新的內(nèi)容將會被寫入到已有內(nèi)容之后孤里。如果該文件不存在,創(chuàng)建新文件進行寫入橘洞。
a+ 打開一個文件用于讀寫捌袜。如果該文件已存在,文件指針將會放在文件的結(jié)尾炸枣。文件打開時會是追加模式虏等。如果該文件不存在,創(chuàng)建新文件用于讀寫适肠。
ab+ 以二進制格式打開一個文件用于追加霍衫。如果該文件已存在,文件指針將會放在文件的結(jié)尾侯养。如果該文件不存在敦跌,創(chuàng)建新文件用于讀寫。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逛揩,一起剝皮案震驚了整個濱河市柠傍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辩稽,老刑警劉巖惧笛,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逞泄,居然都是意外死亡徐紧,警方通過查閱死者的電腦和手機静檬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來并级,“玉大人,你說我怎么就攤上這事侮腹〕氨蹋” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵父阻,是天一觀的道長愈涩。 經(jīng)常有香客問我,道長加矛,這世上最難降的妖魔是什么履婉? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮斟览,結(jié)果婚禮上毁腿,老公的妹妹穿的比我還像新娘。我一直安慰自己苛茂,他們只是感情好已烤,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妓羊,像睡著了一般胯究。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上躁绸,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天裕循,我揣著相機與錄音,去河邊找鬼净刮。 笑死剥哑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的庭瑰。 我是一名探鬼主播星持,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弹灭!你這毒婦竟也來了督暂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤穷吮,失蹤者是張志新(化名)和其女友劉穎逻翁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捡鱼,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡八回,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缠诅。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡溶浴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出管引,到底是詐尸還是另有隱情士败,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布褥伴,位于F島的核電站谅将,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏重慢。R本人自食惡果不足惜饥臂,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望似踱。 院中可真熱鬧隅熙,春花似錦、人聲如沸屯援。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狞洋。三九已至弯淘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吉懊,已是汗流浹背庐橙。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留借嗽,地道東北人态鳖。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像恶导,于是被迫代替她去往敵國和親浆竭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361