刪除文件 path,刪除時候如果path是一個目錄, 拋出 OSError錯誤。
remove() 同 unlink() 的功能是一樣的
os.remove('a.txt')
如果remove文件夾就會報錯
>>> os.remove(r"C:\Users\k\Desktop\aaa") Traceback (most recent call last): File "<stdin>", line 1, in <module> PermissionError: [WinError 5] 拒絕訪問。: 'C:\\Users\\k\\Desktop\\aaa'
現在刪除下面這個文件
刪除xx.txt
>>> os.remove(r"C:\Users\k\Desktop\aaa\xx.txt")
os.removedirs(path),刪除文件夾,但是文件夾必須為空。
遞歸地刪除目錄。類似於rmdir(), 如果子目錄被成功刪除, removedirs() 將會刪除父目錄;但子目錄沒有成功刪除,將拋出錯誤。
例如, os.removedirs(“a/b/c”) 將首先刪除c目錄,然后再刪除b和a, 如果他們是空的話,則子目錄不能成功刪除,將拋出 OSError異常
>>> import os >>> os.removedirs("C:\Users\k\Desktop\aaa") File "<stdin>", line 1 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
>>> os.removedirs(r"C:\Users\k\Desktop\aaa") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\k\Anaconda3\lib\os.py", line 259, in removedirs rmdir(name) OSError: [WinError 145] 目錄不是空的。: 'C:\\Users\\k\\Desktop\\aaa'
刪除aaa文件夾,由於aaa文件夾非空,需要先刪除子目錄bbb,再刪除父目錄aaa
寫法如下
>>> os.removedirs(r"C:\Users\k\Desktop\aaa/bbb")
如果要刪除目錄,請使用rmdir()。
os.rmdir(path)
刪除目錄 path,要求path必須是個空目錄,否則拋出OSError錯誤
>>> os.rmdir(r"C:\Users\k\Desktop\aaa") Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [WinError 145] 目錄不是空的。: 'C:\\Users\\k\\Desktop\\aaa'
刪除一個非空目錄
例子
>>> import shutil >>> shutil.rmtree(r"C:\Users\k\Desktop\aaa") >>>