首頁 > 軟體

Python利用os模組實現自動刪除磁碟檔案

2022-11-23 14:01:03

1、引言

小絲:魚哥, 請教你個問題。

小魚:你覺得你得問題,是正兒八經的嗎?

小絲:那必須的, 人都正經,何況問題呢?

小魚:那可不敢說, 你得問題這次是否正經我不敢說,但是人, 肯定不正經。

小絲:別這麼說,魚哥。

小魚:還用我說, 你說說你自己的座駕是啥?

小絲:額… 我也沒總去洗浴啊

小魚:拉倒吧, 一週7天,你恨不得8天都在泡澡… 我還能說哈

小絲:魚哥, 男人何苦為難男人。

小魚:對了, 你剛剛想問啥問題來著?

小絲:魚哥,那你保證,只討論問題, 不討論洗澡…

小魚:嗯, 好, 我保證不會說 你經常在 紅浪漫 洗浴中心的。

小絲:魚哥… 你不講究…

小魚:那你還不趕緊說你想問啥問題?

小絲:我說… 能不能一次全部刪除我的資料夾下的所有檔案, 我不想手動刪除.

小魚:你可真懶, 那你直接把資料夾刪除得了 ,再不行,你把磁碟格式化, 啥檔案都沒了。

小絲:魚哥,別鬧,正兒八經的問題。

小魚:嗯, 這還不簡單,就是它。

2、程式碼實戰

2.1 模組介紹

關於 os模組, 相信大家都比較熟悉,例如:

  • os.listdir():直接返回指定路徑下檔案和資料夾組成的列表;
  • os.walk():獲取每層資料夾下的檔案路徑,資料夾列表,檔案列表;
  • os.path.exists():判斷檔案是否存在, True、false;
  • os.mkdir():建立一個新的資料夾;
  • os.rmdir():刪除資料夾();

但是今天, 我們要分享是系統模組的操作方法,如下:

  • os.getenv():獲取(碟符)資訊;
  • os.environ:系統磁碟符;
  • os.chdir():更改目錄;
  • os.getcwd():獲取當前路徑;

2.2 獲取碟符

我們先獲取系統磁碟的磁碟,很簡單,我直接上程式碼:

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

import os

#獲取系統磁碟碟符
SystemDri_path = os.getenv('SystemDrive')

print(f'系統磁碟符為{SystemDri_path}')

執行結果

系統磁碟符為C:

2.3 獲取碟符下的目錄

我們繼續來獲取碟符下的檔案,

這裡,我展示3種方式,如下:

  • os.listdir()
  • os.environ
  • os.getenv()

具體樣例,接著往下看。

2.3.1 os.listdir()

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

import os

#獲取系統磁碟符下的檔案
SystemDri_file = os.listdir("C:")
print(f'系統磁碟符下的檔案目錄:{SystemDri_file}')

執行結果

由於職業素養,我把系統磁碟的一些敏感目錄給打馬賽克了。

2.3.2 os.environ

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

import os

#獲取系統磁碟符下的檔案
SystemDri_file = os.environ

print(f'系統磁碟符下的檔案目錄:{SystemDri_file}')

執行結果

同樣,我擷取的是一部分內容,

從結果可以看出,把我電腦的C槽、D槽資訊都列印出來了。

2.3.3 os.getenv()

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

import os

#獲取系統磁碟碟符
SystemDri_file = os.getenv('SystemDrive')
#修改當前目錄
os.chdir(SystemDri_file+'\')
#把目錄以樹形列印出來並儲存在file.txt 檔案
os.system('tree>>testfile.txt')
print(f'執行完成')

執行結果

在C槽生成testfile.txt 檔案

注:

系統磁碟,需要超管許可權, 否則, 就會提示 如下資訊:

拒絕存取

2.4 刪除檔案

2.4.1 刪除指定檔案下檔案

我們獲取了磁碟的目錄結構,

那麼,接下來,我們就可以根據指定的檔案路徑,刪除目標檔案及目標資料夾。

這裡用到的方法,也就兩種:

  • os.remove():刪除檔案;
  • os.rmdir():刪除目錄;
  • os.walk():遍歷檔案目錄;

我們來刪某一檔案,直接上程式碼:

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

'''
實現功能:
	使用os.walk()方法,遍歷檔案目錄,
	匹配則使用remove、rmdir 方法 刪除
'''
import os

#設定檔案路徑
file_path = r'C:UsersCarl_DJDesktopDemoTest'



#遍歷目錄
for root,dirs,files in os.walk(file_path,topdown=False):
    #name在檔案中迴圈,如果匹配,則刪除
    for _file in files:
        #刪除檔案
        os.remove(os.path.join(root,_file))
    #name在檔案目錄迴圈,如果匹配,則刪除
    for _dir in dirs:
        #刪除目錄
        os.rmdir(os.path.join(root,_dir))
print(f'執行完成')

刪除前,資料夾下的檔案

執行結果

2.4.2 刪除所有檔案下檔案

如果你要刪除系統下所有的檔案,

只需要遍歷即可。

但是,小魚在這裡強調

  • 本段程式碼,僅供演示操作
  • 執行此段程式碼需謹慎, 出現任何後果,都與小魚無關
  • 切勿商用,切勿有刪系統跑路的想法

程式碼範例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-16
# @Author : Carl_DJ

'''
實現功能:
	刪除指定的磁碟下的所有檔案
		-->使用os.walk()方法,遍歷檔案目錄,
		-->匹配則使用remove、rmdir 方法 刪除
'''
import os

#需要刪除的檔案路徑
list = ['C:\\Users\\Carl_DJ\\Desktop\\DemoTest1\\','C:\\Users\\Carl_DJ\\Desktop\\DemoTest2\\']


#遍歷目錄
for i in list:
    for root,dirs,files in os.walk(i,topdown=False):
        # name在檔案中迴圈,如果匹配,則刪除
        for _file in files:
            # 刪除檔案
            os.remove(os.path.join(root, _file))
        # name在檔案目錄迴圈,如果匹配,則刪除
        for _dir in dirs:
            # 刪除目錄
            os.remove(os.path.join(root, _dir))
print(f'執行完成')

執行結果與上圖一樣, 就不展示了。

3、總結

今天, 我分享了os的進階用法,如:

  • os.environ
  • os.walk()
  • os.getenv()
  • os.rmdir()
  • os.remove()
  • os.chdir()

學會這些方法, 讓我們在實際工作中,會節省更多時間。

  • 如果我們平時刪除資料夾下的檔案, 可以直接執行這段程式碼;
  • 如果我們要批次刪除多個資料夾下的檔案,也可以直接執行這段程式碼;
  • 如果你要刪除系統的所有檔案, 那就不要試了, 畢竟,後果很難以接受, 簡稱 難受

到此這篇關於Python利用os模組實現自動刪除磁碟檔案的文章就介紹到這了,更多相關Python os模組刪除磁碟檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com