撩課-Python-每天5道面試題-第9天

一. Python程序中, 文件的處理步驟是什么?

  1. 打開

open("文件"抑进,"模式")

  1. 讀寫
    2.1 讀

    f.read(字節(jié)數(shù))
    字節(jié)數(shù)默認是文件內容長度
    下標會自動后移
    f.readline([limit])
    讀取一行數(shù)據(jù)
    limit: 限制的最大字節(jié)數(shù)
    f.readlines()
    會自動的將文件按換行符進行處理
    將處理好的每一行組成一個列表返回
    for in
    可以直接遍歷 f 本身
    也可以遍歷行列表

    2.2 寫

    f.write("內容")
    返回值是寫入的字節(jié)長度

  2. 關閉

f.close()
關閉文件

為什么需要關閉?
打開狀態(tài), 會占用系統(tǒng)資源
會把緩沖區(qū)內容清空到磁盤文件中

二. 文本打開時設置的模式有哪些? 分別代表什么意思?

  1. 基礎模式
    r
    以只讀方式打開文件, 這是默認模式
    文件的指針將會放在文件的開頭
    注意: 文件不存在, 會報錯
    w
    以只寫方式打開文件
    文件的指針將會放在文件的開頭
    所以, 寫入的新內容, 會覆蓋舊的內容
    注意: 文件不存在, 會自動創(chuàng)建一個新文件
    a
    以追加方式(只寫)打開文件
    文件的指針將會放在文件結尾
    所以, 寫入的內容, 會新增到文件末尾
    注意:文件不存在, 會自動創(chuàng)建一個新文件
  1. 組合模式-增加b
    rb
    wb
    ab

    以二進制格式進行操作文件讀寫
    如果文件是二進制文件, 則選擇此項
    例如: 圖片, 視頻, 音頻 ...

  1. 組合模式-增加+
    r+
    w+
    a+
    rb+
    rw+
    ra+
    代表都是以 "讀寫模式" 進行打開
    其他特性基本和 + 前面的模式一致
    但是關于部分操作, 有細節(jié)區(qū)別

三. os模塊中提供的常用文件操作?

  1. 模塊
    import os
  2. 信息獲取操作
    .closed: 返回true如果文件已被關閉疆股,否則返回false
    .name: 返回文件的名稱
  3. 其他操作
    3.1 重命名
    os.rename(‘old_name’, 'new_name')
    3.2 刪除
    os.remove('文件名')
    3.3 創(chuàng)建文件夾
    os.mkdir("文件夾名稱")
    3.4 獲取當前目錄
    os.getcwd()
    3.5 改變默認目錄
    os.chdir("目標目錄")
    3.6 獲取目錄列表
    os.listdir("./")

四. 代碼實現(xiàn): 大文件拷貝操作

注意: 不能一次性讀取大文件內容, 容易造成內存峰值

import os

os.chdir("files")

# 1. 只讀模式, 打開要復制的文件
#   追加模式, 打開副本文件

source_file = open("d.txt", "r", encoding="utf-8")
dst_file = open("d_bat.txt", "a", encoding="utf-8")

# 2. 從源文件中讀取內容
#   寫入到目標文件中,
# 錯誤寫法: 針對于大文件, 不應一次性讀取全部內容
# # content = source_file.read()
# # dst_file.write(content)

while True:
     content = source_file.read(1024)
     if len(content) == 0:
         break
     print("----", content)
     dst_file.write(content)

# 3. 關閉源文件和目標文件
source_file.close()
dst_file.close()

五. 代碼實現(xiàn): 假設一個文件夾中有很多不同格式的文件, 要求: 將不同格式的文件, 劃分到不同格式的文件夾下;

例如: a.png b.txt c.avi d.png
劃分后:
png文件夾: a.png d.png
txt文件夾: b.txt
avi文件夾: c.avi

import os
import shutil

# 目標路徑
path = "files2"

if not os.path.exists(path):
    exit()

os.chdir(path)
file_list = os.listdir("./")
# print(file_list)

# 1. 遍歷所有的文件(名稱)
for file_name in file_list:
    # print(file_name)
    # 2. 分解文件的后綴名
    # 2.1 獲取最后一個.的索引位置 xx.oo.txt
    index = file_name.rfind(".")
    if index == -1:
        continue
    # print(index)
    # 2.2 根據(jù)這個索引位置, 當做起始位置, 來截取后續(xù)的所有字符串內容
    extension = file_name[index + 1:]
    print(extension)

    # 3. 查看一下, 是否存在同名的目錄
    # 4. 如果不存在這樣的目錄 -> 直接創(chuàng)建一個這樣名稱的目錄
    # 5, 目錄存在 -> 移動過去
    if not os.path.exists(extension):
        os.mkdir(extension)

    shutil.move(file_name, extension)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末扩劝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丁溅,更是在濱河造成了極大的恐慌文兢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捏雌,死亡現(xiàn)場離奇詭異,居然都是意外死亡酗钞,警方通過查閱死者的電腦和手機腹忽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砚作,“玉大人窘奏,你說我怎么就攤上這事『迹” “怎么了着裹?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長米同。 經(jīng)常有香客問我骇扇,道長,這世上最難降的妖魔是什么面粮? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任少孝,我火速辦了婚禮,結果婚禮上熬苍,老公的妹妹穿的比我還像新娘稍走。我一直安慰自己,他們只是感情好柴底,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布婿脸。 她就那樣靜靜地躺著,像睡著了一般柄驻。 火紅的嫁衣襯著肌膚如雪狐树。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天鸿脓,我揣著相機與錄音抑钟,去河邊找鬼。 笑死野哭,一個胖子當著我的面吹牛味赃,可吹牛的內容都是我干的。 我是一名探鬼主播虐拓,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼心俗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蓉驹?” 一聲冷哼從身側響起城榛,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎态兴,沒想到半個月后狠持,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡瞻润,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年喘垂,在試婚紗的時候發(fā)現(xiàn)自己被綠了甜刻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡正勒,死狀恐怖得院,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情章贞,我是刑警寧澤祥绞,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站鸭限,受9級特大地震影響蜕径,放射性物質發(fā)生泄漏。R本人自食惡果不足惜败京,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一兜喻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赡麦,春花似錦虹统、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戚扳,卻和暖如春忧便,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帽借。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工珠增, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砍艾。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓蒂教,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脆荷。 傳聞我的和親對象是個殘疾皇子凝垛,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,515評論 25 707
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準蜓谋。 注意:講述HT...
    kismetajun閱讀 27,422評論 1 45
  • 很快又是畢業(yè)季了梦皮,互聯(lián)網(wǎng)上各種才華出眾的畢業(yè)橫幅又開始新的一輪刷屏。每年如此桃焕。 回想自己畢業(yè)剑肯,已經(jīng)是七年前的事情了...
    拾花草堂閱讀 632評論 0 1
  • 1 提起三爺爺,莊上的人都搖頭嘆他命不好溃睹《耍快七十了,沒有含飴弄孫的福氣丸凭,反倒要張羅一家大小五口的吃喝。偏又生了眼疾...
    我本卿狂閱讀 268評論 1 0
  • 前置文章:遞歸算法:www.reibang.com/p/703069f3ba3f . 遞歸問題有兩個經(jīng)典的...
    郎小凱閱讀 1,188評論 0 0