python刪除文件與目錄的方法


python內置方法刪除目錄(空目錄與非空目錄)及文件

1、os.remove(file_path):刪除文件

#PPTV是文件夾,xen.txt是文件
>>> os.remove('PPTV')
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    os.remove('PPTV')
PermissionError: [WinError 5] 拒絕訪問。: 'PPTV'
>>> os.remove('xen.txt')
>>> os.unlink('xen.txt')

    注:

    file_path如果是目錄則拋出異常

    remove() 同 unlink() 的功能是一樣的

2、os.removedirs(path):遞歸刪除目錄

    目錄必須為空目錄,若目錄被刪除,removedirs則會繼續刪除父目錄;子目錄未刪除成功則報錯

    例子:

        os.removedirs(“foo/bar/ba”) 將首先刪除 “foo/bar/ba”目錄,如果foo/bar是空,則會繼續刪除foo/bar,foo若為空則會繼續刪除foo

        如果子目錄不能成功刪除,將 拋出異常

3、os.rmdir(path):刪除目錄

    刪除目錄 path,要求path必須是個空目錄,否則拋出OSError錯誤

4、遞歸刪除目錄和文件

    1、通過shutil.rmtree(path)刪除:

>>> print(subprocess.getoutput('tree pytest'))
卷 工作 的文件夾 PATH 列表
卷序列號為 00000002 2C55:35CD
E:\CHENGD_FTP_CLIENT\MODULE\PYTEST
├─.idea
└─test_dirs
>>> shutil.rmtree('e:\\chengd_ftp_client\\module\\pytest')
>>> print(subprocess.getoutput('tree pytest'))
卷 工作 的文件夾 PATH 列表
卷序列號為 00000002 2C55:35CD
E:\CHENGD_FTP_CLIENT\MODULE\PYTEST
無效的路徑 - \CHENGD_FTP_CLIENT\MODULE\PYTEST
沒有子文件夾

    2、通過os.walk方法刪除:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import subprocess

obj_dir = 'E:\chengd_ftp_client\module\rmtest'

for root, dirs, files in os.walk(obj_dir, topdown=False):
    for name in files:
        print(name)
        os.remove(os.path.join(root, name))
    for name in dirs:
        print(name)
        os.rmdir(os.path.join(root, name))

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM