文件IO操作,文件路徑操作和文件

      網友投稿 922 2025-04-01

      一. 文件的分類

      廣義上說文件是按照文件的類型進行分類:

      如視頻文件、音頻文件、圖片文件、文檔文件等 等各種形式的文件,在這樣的分類情況下~很明確使用對應的軟件打開對應的文件。

      視頻文件:視頻播放器 音頻文件:網易云音樂…

      圖片文件:畫圖、照片… 文檔文件:word 文檔,記事本,wps 軟件

      表格文件:excel,wps 表格軟件

      狹義上的文件是按照組成文件的數據格式分類:

      文本文件:數據是按照字符組成的文件,使用記事本可以正常打開

      二進制文件:數據是按照字節組成的文件,使用記事本打開會出現亂碼 圖片文件、音頻文件、視頻文件、word 文檔

      文本的世界是字符串的世界,和編碼有關 ?二進制的世界是字節的世界,和編碼無關

      編程文件操作是邏輯位置的操作 ? 物理位置操作是操作系統處理的

      二.文件IO操作

      open()? ? ? # 打開文件

      f = open('test.txt', 'r')

      打印f:

      <_io.TextIOWrapper name='1.py' mode='r' encoding='cp936'>

      文本IO包裝器 mode只讀 編碼cp936對應GBK

      打開文件,會占用當前應用程序進程一個描述符文件(描述符 0 1 2 標準輸入 標準輸出 標準錯誤輸出)

      主mode: r:只讀(默認,本質是rt) 指針在頭部 w:寫 指針在頭部(沒有文件創建文件) a:寫 指針在尾部(沒有文件創建文件) x: 寫模式,新建一個文件,如果該文件已存在則會報錯。 副mode t:文本模式 (默認) b: 二進制模式 +: 打開一個文件進行更新(可讀可寫)。

      read()? ? ? ? ? ? #? 讀取文件多少個字節

      # test.txt: # aa # 123 f = open('test.txt', 'r') # 讀全部 f.read() # aa # 123 f = open('test.txt', 'r') f.read(1) # a f = open('test.txt', 'r') f.read(3) # aa(換行符也是一個字符) f = open('test.txt', 'r') f.read(1) # a f.read(3) # 此時指針在第二個字節 # a # # 1

      readline()?? ? ?#? 從文件讀取整行,包括 "\n" 字符。如果指定了一個非負數的參數,則返回指定大小的字節數,包括 "\n" 字符。

      readlines()? ? #? 讀取所有行(直到結束符 EOF)并返回列表

      write()? ? ? ? ? ?#? 寫入緩沖區

      flush()?? ? ? ? ? #? 寫入磁盤

      close()? ? ? ? ? #? 緩沖區有數據未寫入磁盤,會flush; 歸還文件描述符

      readable()? ? #? 是否可讀,bool

      writable()? ? ?#? 是否可寫,bool

      closed()? ? ? ?#? 是否關閉,bool

      seek()? ? ? ? ?#? 指定指針位置,導致flush

      tell()? ? ? ? ? ?#? ?會動下指針,導致flush

      with上下文管理 無論是否執行異常,自動執行close()方法

      with open('test.txt', 'r+', encoding="utf-8") as f: for line in f.readlines(): print(line)

      3.os.path模塊

      os.getcwd()? ? ? ? ? ? ? ? ? ? 返回當前的工作目錄

      os.chdir()? ? ? ? ? ? ? ? ? ? ? ? 修改當前的工作目錄

      os.chmod()? ? ? ? ? ? ? ? ? ? ? 修改文件的訪問權限。

      os.system()? ? ? ? ? ? ? ? ? ? ? 執行系統命令

      os.unlink()

      os.remove()

      os.mkdir()

      os.rmdir()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除路徑指定的空文件夾

      os.listdir()

      os.path.abspath(path)? ? ? ? ? ?返回絕對路徑

      os.path.dirname(path)? ? ? ? ? ? 返回文件路徑

      os.path.basename(path)? ? ? ? 返回文件名

      os.path.getsize(path)? ? ? ? ? ? ? 返回文件大小,如果文件不存在就返回錯誤

      os.path.exists(path)? ? ? ? ? ? ? ? ? 路徑存在則返回True,路徑損壞返回False

      os.path.isfile(path)? ? ? ? ? ? ? ? ? ? 判斷路徑是否為文件

      os.path.isdir(path)? ? ? ? ? ? ? ? ? ? ? 判斷路徑是否為目錄

      4.shutil模塊

      move()

      # 功能:移動文件或者文件夾

      # 格式:shutil.move(來源地址,目標地址)

      # 返回值:目標地址

      如果目標路徑指向的文件夾中已經存在了同名文件,那么該文件將被重寫;如果目標路徑指向一個具體的文件,那么指定的文件在移動后將被重命名。

      注意:目標路徑下的文件夾必須是已經存在的,否則程序會返回錯誤。

      copy()

      # 功能:復制文件

      # 格式:shutil.copy('來源文件','目標地址')

      # 返回值:復制之后的路徑

      copy2()

      # 功能:復制文件,保留元數據

      # 格式:shutil.copy2('來源文件','目標地址')

      # 返回值:復制之后的路徑

      copyfileobj()

      # 將一個文件的內容拷貝的另外一個文件當中

      # 格式:shutil.copyfileobj(open(來源文件,'r'),open('目標文件','w'))

      # 返回值:無

      copyfile()

      # 功能:將一個文件的內容拷貝的另外一個文件當中

      # 格式:shutil.copyfile(來源文件,目標文件)

      # 返回值:目標文件的路徑

      copytree()

      # 功能:復制整個文件目錄

      # 格式:shutil.copytree(來源目錄,目標目錄)

      # 返回值:目標目錄的路徑

      # 注意:無論文件夾是否為空,均可以復制,而且會復制文件夾中的所有內容

      copymode()

      文件IO操作,文件路徑操作和文件

      # 功能:拷貝權限

      copystat()

      # 功能:拷貝元數據(狀態)

      rmtree()

      # 功能:移除整個目錄,無論是否空

      # 格式:shutil.rmtree(目錄路徑)

      # 返回值:無

      which()

      # 功能:檢測命令對應的文件路徑

      # 格式:shutil.which(‘命令字符串’)

      # 返回值:命令文件所在位置

      # 注意:window和linux不太一樣。 window的命令都是.exe結尾,linux則不是

      disk_usage()

      # 功能:檢測磁盤使用信息

      # 格式:disk_usage(‘盤符’)

      # 返回值:元組

      # 歸檔和解包操作

      # 歸檔:將多個文件合并到一個文件當中,這種操作方式就是歸檔。

      # 解包:將歸檔的文件進行釋放。

      # 壓縮:壓縮時將多個文件進行有損或者無損的合并到一個文件當中。

      # 解壓縮:就是壓縮的反向操作,將壓縮文件中的多個文件,釋放出來。

      # 注意:壓縮屬于歸檔!

      make_archive()

      # 功能:歸檔函數,歸檔操作

      # 格式:shutil.make_archive('目標文件路徑','歸檔文件后綴','需要歸檔的目錄')

      # 返回值:歸檔文件的最終路徑

      unpack_archive()

      # 功能:解包操作

      # 格式:shutil.unpack_archive('歸檔文件路徑','解包目標文件夾')

      # 返回值:None

      # 注意:文件夾不存在會新建文件夾

      get_archive_formats()

      # 功能:獲取當前系統已注冊的歸檔文件格式(后綴)

      # 格式:shutil.get_archive_formats()

      # 返回值:列表 ? [(后綴,解釋),(后綴,解釋),(后綴,解釋)...]

      get_unpack_formats()

      # 功能:獲取當前系統已經注冊的解包文件格式(后綴)

      # 格式:shutil.get_unpack_formats()

      # 返回值:列表 ? [(后綴,解釋),(后綴,解釋),(后綴,解釋)...]

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:作業表單分類有哪些?
      下一篇:Excel 中你不知道的默認的設置比如不再自動識別超鏈接
      相關文章
      国产亚洲情侣一区二区无| 亚洲精品视频观看| 亚洲福利一区二区| 亚洲av日韩av无码| 亚洲午夜无码久久久久| 亚洲AV蜜桃永久无码精品| 激情小说亚洲色图| 亚洲成A人片在线观看中文| 亚洲AⅤ无码一区二区三区在线| 噜噜综合亚洲AV中文无码| 亚洲AV一区二区三区四区| 最新亚洲人成无码网www电影| 男人的天堂av亚洲一区2区| 色婷婷六月亚洲综合香蕉| 国产精品亚洲av色欲三区| 一本色道久久88亚洲综合| 亚洲国产成人精品91久久久| 国产精品亚洲w码日韩中文| 国产AV无码专区亚洲AWWW| 国产亚洲无线码一区二区 | 国产精品日本亚洲777| 美国毛片亚洲社区在线观看| 国产产在线精品亚洲AAVV| 亚洲精品99久久久久中文字幕| jlzzjlzz亚洲乱熟在线播放| 亚洲三区在线观看无套内射| 久久久久亚洲av无码专区蜜芽| 日本久久久久亚洲中字幕| 亚洲小视频在线播放| 亚洲不卡影院午夜在线观看| 亚洲暴爽av人人爽日日碰| 国产成人亚洲精品播放器下载| 亚洲精品视频在线看| 亚洲一区二区三区自拍公司| 亚洲αv在线精品糸列| 亚洲国语在线视频手机在线| 亚洲kkk4444在线观看| gogo全球高清大胆亚洲| 亚洲色欲一区二区三区在线观看| 亚洲国语精品自产拍在线观看| 亚洲欧洲校园自拍都市|