Python入門到精通】(十八)Python的文件夾操作,創建文件夾復制文件等等

      網友投稿 1383 2025-04-02

      您好,我是碼農飛哥,感謝您閱讀本文,歡迎一鍵三連哦。


      本文重點介紹PythonPython的文件夾操作,包括但是不限于創建文件夾復制文件。

      干貨滿滿,建議,需要用到時常看看。 小伙伴們如有問題及需要,歡迎踴躍留言哦~ ~ ~。

      @[TOC]

      前言

      上篇文章介紹了Python的模塊和包。這篇文章接著介紹另一個非常重要的點–Python的文件操作(IO)。文件操作是程序必不可少的一個知識點。不管是文件的上傳下載;還是文件的讀取寫入都屬于文件的操作。話不多說,直接進入主題

      絕對路徑和相對路徑

      對于絕對路徑和相對路徑相信小伙伴們都不會陌生。絕對路徑就是從根目錄開始的路徑,相對路徑就是相對于當前工作目錄所在的位置。

      根目錄:Window系統中以盤符(C: D:)作為根目錄。而Max OS或者Linux系統中以/作為根目錄。

      當前工作目錄:就是程序運行的工作目錄,所有沒有從根目錄開始的文件名或者路徑,都假定在當前工作目錄下。在Python中可以通過os.getcwd()函數取得當前工作路徑的字符串,可以通過os.chdir()改變它。

      >>> import os >>> os.getcwd() 'D:\學習記錄\PycharmProjects\python_demo_1'

      如上本地程序的當前工作目錄是D:\學習記錄\PycharmProjects\python_demo_1,若文件file.txt位于該目錄下,則file.txt的相對路徑表示為.\file.txt (其中.\就表示當前目錄)

      文件路徑的操作

      Python中操作文件的模塊是os模塊。文件的所有操作方法由該模塊提供。所以需要先引入該模塊 import os

      os.path.abspath(path) 獲取當前目錄的絕對路徑

      os.path.isabs(path) 如果參數path是一個絕對路徑,就返回True,如果參數是一個相對路徑,就返回False。

      os.path.relpath(path,start) 將返回從start路徑到path的相對路徑的字符串,如果沒有提供start,就使用當前工作目錄作為開始目錄。

      os.path.dirname(path) 將返回一個字符串,它包含path參數中最后一個斜杠之前的所有內容。

      os.path.basename(path) :將返回一個字符串,它包含path參數中最后一個斜杠之后的所有內容。

      os.path.split(path): 可以通過獲得包含路徑的目錄名稱和基本名稱的元組。

      os.path.exists(path) 判斷路徑path是否存在,如果存在則返回True,否則返回False。

      os.path.isdir(path): 判斷路徑path是否是文件夾,如果是的話則返回True,否則返回False。

      9. os.path.isfile(path) 判斷路徑path是否是文件,如果是的話則返回True,否則返回False。

      # 獲取當前文件絕對路徑 print(os.path.abspath(".")) #也可以這樣寫 basedir = os.path.abspath(os.path.dirname(__file__)) print(basedir) # 判斷是否是絕對路徑 path = 'D:\學習記錄\PycharmProjects\python_demo_1' print(os.path.isabs(path)) # 將返回從 start 路徑到 path 的相對路徑的字符串。 # 如果沒有提供 start,就使用當前工作目錄作為開始路徑。 print(os.path.relpath("/python_demo_1", "D:\學習記錄\PycharmProjects")) print(os.path.relpath('/demo')) # 獲取當前類的路徑 path = "D:\學習記錄\PycharmProjects\python_demo_1/demo/io/path_test.py" print(os.path.basename(path)) print(os.path.dirname(path)) print(os.path.split(path)) # 判斷路徑是否存在 print(os.path.exists("D:\學習記錄\PycharmProjects\python_demo_1")) print(os.path.isdir('D:\學習記錄\PycharmProjects\python_demo_1')) print(os.path.isfile('D:\學習記錄\PycharmProjects\python_demo_1/demo/io/path_test.py'))

      運行結果是:

      D:\學習記錄\PycharmProjects\python_demo_1\demo\io True ..\..\python_demo_1 ..\..\..\..\..\demo path_test.py D:\學習記錄\PycharmProjects\python_demo_1/demo/io ('D:\學習記錄\PycharmProjects\python_demo_1/demo/io', 'path_test.py') True True True

      os.name 獲取系統類型

      os.environ 獲取系統環境變量

      os.path.join(path, *paths) 將多個目錄拼接起來。

      os.path.splitext(path)[1] 獲取文件的后綴名,其中path必須是一個文件完整路徑。

      os.mkdir(path): 創建名為path的目錄,需要注意的是該方法只能創建一層目錄,不能遞歸創建目錄,遞歸創建目錄可以用os.makedirs(path)方法。

      os.rmdir(path):移除名為path的目錄,需要注意的是該方法同樣只能移除一層目錄,不能遞歸刪除目錄。遞歸刪除目錄使用os.removedirs(path)方法。

      os.listdir(path):獲取目錄path下所有的子目錄或者子文件。

      os.remove(path): 刪除文件

      # 創建目錄 os.mkdir("d:/test") # 刪除一個目錄 os.rmdir('d:/test') # 創建d:/test1/test2目錄 os.makedirs("d:/test1/test2") # 在某個目錄下創建一個新目錄,首先把新目錄的完整地址表示出來 print(os.path.join("D:/學習記錄/PycharmProjects", 'demo')) # 獲取文件擴展名 file_path = "D:/學習記錄/PycharmProjects/python_demo_1/demo/io/os_test.py" print("后綴名是:" + os.path.splitext(file_path)[1]) # 列出當前目錄下的所有目錄 gen = [x for x in os.listdir('.') if os.path.isdir(x)] print(gen) # 列出當前目錄下所有的.py文件,也只需一行代碼: list = [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.py'] print(list)

      運行結果是:

      【Python從入門到精通】(十八)Python的文件夾操作,創建文件夾復制文件等等

      D:/學習記錄/PycharmProjects\demo 后綴名是:.py ['serializable', 'test_io', 'test_io1'] ['dir_test.py', 'io_demo.py', 'os_test.py', 'path_test.py', 'read_test.py', 'stringio_test.py']

      列出當前目錄已經當前目錄的所有目錄下后綴名是.py的所有文件。這里使用到了遞歸函數,通過splitext方法獲取文件后綴名,通過listdir函數列出傳入的filepath的所有子目錄或者文件。

      def gci(filepath): files = os.listdir(filepath) for fi in files: fi_d = os.path.join(filepath, fi) if os.path.isdir(fi_d): gci(fi_d) elif os.path.splitext(fi_d)[1] == '.py': print(fi_d)

      shutil模塊

      除了os模塊之外,還有一個重要的操作文件或者文件夾的模塊shutil模塊。該模塊可以用來刪除文件夾,復制文件等等。下面就簡單的介紹一下其功能吧。

      shutil.copytree(src, dst) 用來復制文件夾,將src目錄下的內容復制到dst目錄下。如果dst目錄下存在了src下的內容,則方法會報錯。

      shutil.copyfile(src, dst) 用來復制文件,將src指定的文件復制給dst指定的文件

      shutil.rmtree(path) 用于刪除path目錄

      import shutil import os # 復制文件夾 src_os_path = "D:/學習記錄/PycharmProjects/python_demo_1/demo/io" dst_os_path = "D:/test1/test2/dst_io" if not os.path.exists(dst_os_path): shutil.copytree(src_os_path, dst_os_path) # 文件復制 src_os_test_path = "D:/學習記錄/PycharmProjects/python_demo_1/demo/io/os_test.py" dst_os_test_path = "D:/test1/test2/dst_os_test.py" if not os.path.exists(dst_os_test_path): shutil.copyfile(src_os_test_path, dst_os_test_path) path1 = "D:/test1/test4/test5" if not os.path.exists(path1): os.makedirs(path1) # 刪除文件夾 shutil.rmtree(path1)

      運行結果是:

      總結

      本文詳細介紹了Python中操作文件各種方法,主要涉及絕對路徑,相對路徑等知識點。

      我是碼農飛哥,再次感謝您讀完本文。

      Python

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

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

      上一篇:Excel2016打不開怎么辦?Excel2016打開無響應的解決方法
      下一篇:wps表格如何加斜線一分為二(wpsword表格斜線一分為二怎么弄)
      相關文章
      亚洲综合国产精品第一页| 亚洲精品一级无码中文字幕| 久久精品国产精品亚洲下载| 亚洲国产日韩综合久久精品| 亚洲精品美女久久久久9999| 亚洲AV无码成人专区片在线观看 | 亚洲性日韩精品国产一区二区| 亚洲1区2区3区精华液| 亚洲人av高清无码| 久久精品国产亚洲AV未满十八| 亚洲一级黄色视频| 亚洲A∨精品一区二区三区| 亚洲精品永久在线观看| 亚洲国产精品日韩av不卡在线| 亚洲乱妇熟女爽到高潮的片| 亚洲国产成人无码AV在线影院| 亚洲avav天堂av在线网毛片| 国产精品成人亚洲| 亚洲伦乱亚洲h视频| 国内精品久久久久久久亚洲| 亚洲情综合五月天| 亚洲Av熟妇高潮30p| 亚洲av无码国产精品夜色午夜 | 亚洲丝袜中文字幕| 亚洲依依成人亚洲社区| 亚洲精品久久无码| 国产精品亚洲一区二区无码 | 午夜亚洲福利在线老司机| 一本久到久久亚洲综合| 亚洲一区二区高清| 久久精品国产亚洲网站| 亚洲精品高清国产一久久| 亚洲最大免费视频网| 中文字幕在线观看亚洲日韩| 亚洲AV无码AV吞精久久| 亚洲国产成人久久综合碰| 亚洲精品成人片在线播放| 精品亚洲aⅴ在线观看| 亚洲中字慕日产2021| 人人狠狠综合久久亚洲| 国产成人精品日本亚洲专区|