Python清空指定資料夾下所有檔案的方法

2021-09-25 15:42:06 字數 3777 閱讀 6459

os.remove() 方法用於刪除指定路徑的檔案。如果指定的路徑是乙個目錄,將丟擲oserror。

在unix, windows中有效

以下例項演示了 remove() 方法的使用:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os, sys

# 列出目錄

print "目錄為: %s" %os.listdir(os.getcwd())

# 移除

os.remove("aa.txt")

# 移除後列出目錄

print "移除後 : %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:

[ 'a1.txt','aa.txt','resume.doc' ]

移除後 :

[ 'a1.txt','resume.doc' ]

os.removedirs() 方法用於遞迴刪除目錄。像rmdir(), 如果子資料夾成功刪除, removedirs()才嘗試它們的父資料夾,直到丟擲乙個error(它基本上被忽略,因為它一般意味著你資料夾不為空)。

以下例項演示了 removedirs() 方法的使用:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os, sys

# 列出目錄

print "目錄為: %s" %os.listdir(os.getcwd())

# 移除

os.removedirs("/test")

# 列出移除後的目錄

print "移除後目錄為:" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:

[ 'a1.txt','resume.doc','a3.py','test' ]

移除後目錄為:

[ 'a1.txt','resume.doc','a3.py' ]

os.rmdir() 方法用於刪除指定路徑的目錄。僅當這資料夾是空的才可以, 否則, 丟擲oserror。

以下例項演示了 rmdir() 方法的使用:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os, sys

# 列出目錄

print "目錄為: %s"%os.listdir(os.getcwd())

# 刪除路徑

os.rmdir("mydir")

# 列出重新命名後的目錄

print "目錄為: %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:

[ 'a1.txt','resume.doc','a3.py','mydir' ]

目錄為:

[ 'a1.txt','resume.doc','a3.py' ]

os.unlink() 方法用於刪除檔案,如果檔案是乙個目錄則返回乙個錯誤。

以下例項演示了 unlink() 方法的使用:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os, sys

# 列出目錄

print "目錄為: %s" %os.listdir(os.getcwd())

os.unlink("aa.txt")

# 刪除後的目錄

print "刪除後的目錄為 : %s" %os.listdir(os.getcwd())

執行以上程式輸出結果為:

目錄為:

[ 'a1.txt','aa.txt','resume.doc']

刪除後的目錄為 :

[ 'a1.txt','resume.doc' ]

1、remove()unlink()的功能是一樣的

在windows系統中,刪除乙個正在使用的檔案,將丟擲異常。在unix中,目錄表中的記錄被刪除,但檔案的儲存還在。

#使用os.unlink()和os.remove()來刪除檔案

#!/user/local/bin/python2.7

# -*- coding:utf-8 -*-

import os

my_file = 'd:/text.txt'

if os.path.exists(my_file):

#刪除檔案,可使用以下兩種方法。

os.remove(my_file)

#os.unlink(my_file)

else:

print 'no such file:%s'%my_file

2、遞迴刪除目錄和檔案的方法(類似dos命令deletetree): 

複製** **如下:

import os

for root, dirs, files in os.walk(top, topdown=false):

for name in files:

os.remove(os.path.join(root, name))

for name in dirs:

os.rmdir(os.path.join(root, name))

3、python清空指定資料夾下所有檔案的方法: 

這個需求很簡單:需要在執行某些**前清空指定的資料夾,如果直接用os.remove(),可能出現因資料夾中檔案被占用而無法刪除,解決方法也很簡單,先強制刪除資料夾,再重新建同名資料夾即可:

import shutil  

shutil.rmtree('要清空的資料夾名')

os.mkdir('要清空的資料夾名')

注:可參考這裡對shutil模組的介紹:

如果想把乙個檔案從乙個資料夾移動到另乙個資料夾,並同時重新命名,用shutil也很簡單:

shutil.move('原資料夾/原檔名','目標資料夾/目標檔名')
參考文獻: 

1、 2018.5.25 

2、 2018.5.25 

3、 2018.5.25 

4、 2018.5.25 

5、 2018.5.25 

6、 2018.5.25

這個需求很簡單:需要在執行某些**前清空指定的資料夾,如果直接用os.remove(),可能出現因資料夾中檔案被占用而無法刪除,解決方法也很簡單,先強制刪除資料夾,再重新建同名資料夾即可:

import shutil

shutil.rmtree('要清空的資料夾名')

os.mkdir('要清空的資料夾名')

簡單記錄一下。

可參考這裡對shutil模組的介紹:

2023年7月21日更新:這裡補充乙個shutil的應用,如果想把乙個檔案從乙個資料夾移動到另乙個資料夾,並同時重新命名,用shutil也很簡單:

shutil.move('原資料夾/原檔名','目標資料夾/目標檔名')

python 複製指定資料夾下所有檔案

get all file by type 根據接收到的path 和type,獲得該path下所有以type型別結尾的檔案 get all file by string 根據接收到的path 和 list,獲得該path下所有的,包含list 裡字串的檔案 copy file by type 根據接收...

Python列舉指定資料夾下的特定檔案

方案 1 利用 glob 模組 import glob import os dst path c ext name txt os.chdir dst path for file in glob.glob ext name pass 方案 2 利用 os.listdir import os dst p...

查詢指定資料夾下的檔案

include include using namespace std finddata t結構體 struct finddata t void main attrib為檔案屬性,由以下字元代表 fa rdonly 唯讀檔案 fa label 卷標號 fa hidden 隱藏檔案 fa direc ...