python刪除空文件夾
⑴ 求個批量刪除文件內容空格的腳本
import os
def remove_first_line_and_spaces(file_path):
with open(file_path, 'r') as file:
# 讀取文件的第二行開始的所改含旦有內容
content = file.readlines()[1:]
# 刪除所有行的前導空格和尾隨空格
content = [line.strip() for line in content]
# 將新內容寫迴文件
with open(file_path, 'w') as file:
file.write('\n'.join(content))
def process_directory(directory_path):
for filename in os.listdir(directory_path):
# 構建完整的文件核擾路徑
file_path = os.path.join(directory_path, filename)
if os.path.isfile(file_path):
remove_first_line_and_spaces(file_path)
if __name__ == '__main__':
directory_path = 'path/to/directory'
process_directory(directory_path)
注意:請把 'path/to/directory' 替換為你要處理的目錄的實際路徑老哪。
⑵ win10怎麼批量刪除指定文件夾內的所有空白文件夾
可以的,我不會用Bat批處理文件,但是我可以用python寫一個這樣的程序。這里假設a,b兩個文件夾內沒有子文件夾,且a,b兩個文件夾都在C:目錄下(如果假設的不對請追問)
①先搭建Python3.6版本的運行環境,設置好環境變數。②創建一個py文件,寫以下的代碼:import os#導入os模塊#獲取a文件夾內的文件信息,如果有子文件夾,可以用較為復雜的os.walk函數。filea=os.listdir("C:a")fileb=os.listdir("C:")#獲取a文件夾內的文件信息dellist=[]#定義一個列表for i in filea:#遍歷列表,獲取信息if i in fileb:dellist.append(i)
#現在,dellist裡面記錄的就是文件夾a比文件夾b多的文件了。for i in dellist:#遍歷列表,刪除文件 os.remove("C:"+str(i))#好了,文件刪除完畢。
還有一個方法:復制b文件夾中的所有文件,然後打開a文件夾,空白處右鍵粘貼,在彈出的復制文件提示框中先勾選「為之後沖突執行此操作」,然後點擊「復制和替換」,復制完畢後,b文件夾復制過來的文件都處於選擇狀態,此時按鍵盤Delete鍵,在彈出的「刪除多個項目」提示框中點擊「是」,這樣就把b文件夾中已經有的文件從a中刪除了。(轉載自ljlluck)如果您還有問題請追問,請注意代碼的縮進、字元的全交半形,以及代碼的完整性。謝謝!
⑶ 編寫一個shell腳本,刪除當前目錄下空文件
#!/bin/bash
#當前路徑
MYDIR=`dirname"$0"`
#切換到當前路徑
cd"$MYDIR"
#刪除當前文件夾下所有空文件夾
find"$MYDIR"-typed-execrmdir-p{};
#對於文件夾大小大於0的文件夾無效。
#$MYDIR加雙引號可以刪除帶空格的文件夾。
試試看這個代碼。
⑷ 如何用python刪除特定文件夾
#!/usr/bin/env python
import os
import shutil
delList = []
delDir = "/home/test"
delList = os.listdir(delDir )
for f in delList:
filePath = os.path.join( delDir, f )
if os.path.isfile(filePath):
os.remove(filePath)
print filePath + " was removed!"
elif os.path.isdir(filePath):
shutil.rmtree(filePath,True)
print "Directory: " + filePath +" was removed!"
shutil是一個高層次的文件操作模塊。True參數表示ignore_errors(忽略拷貝時候的錯誤)。
類似於高級API,而且主要強大之處在於其對文件的復制與刪除操作更是比較支持好。
[附] os模塊(庫)的使用
有關文件夾與文件的查找,刪除等功能 在 os 模塊中實現。
一、取得當前目錄
#1.1
s = os.getcwd()
# s 中保存的是當前的執行目錄(即執行所在的文件夾)
[注意]
如果是要獲得程序運行的當前目錄所在位置,那麼可以使用os模塊的os.getcwd()函數。
如果是要獲得當前執行的腳本的所在目錄位置,那麼需要使用sys模塊的sys.path[0]變數或者sys.argv[0]來獲得
#1.2
import os
import time
folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s'%(os.getcwd(),folder))
二、更改當前目錄
os.chdir( "/root/123")
#將當前目錄設為 "/root/123"
#說明: 當指定的目錄不存在時,引發異常。
三、將一個路徑名分解為目錄名和文件名兩部分
fpath , fname = os.path.split( "你要分解的路徑")
例如:
a, b = os.path.split( "/root/123/test.txt" )
print a
print b
顯示:
/root/123/
test.txt
四、分解文件名的擴展名
fpathandname , fext = os.path.splitext( "你要分解的路徑")
例如:
a, b = os.path.splitext( "/root/123/test.txt" )
print a
print b
顯示:
/root/123/test
.txt
五、判斷一個路徑( 目錄或文件)是否存在
b = os.path.exists( "你要判斷的路徑")
返回值b: True 或 False
六、判斷一個路徑是否文件
b = os.path.isfile( "你要判斷的路徑")
返回值b: True 或 False
七、判斷一個路徑是否目錄
b = os.path.isdir( "你要判斷的路徑")
返回值b: True 或 False
八、獲取某目錄中的文件及子目錄的列表
L = os.listdir( "你要判斷的路徑")
例如:
L = os.listdir( "/root/123" )
print L
顯示 :
['test.txt', 'test.py','python']
#這裡面既有文件也有子目錄
九、創建子目錄
os.makedirs( path ) # path 是"要創建的子目錄"
例如:
os.makedirs("/root/123")
調用有可能失敗,可能的原因是:
(1) path 已存在時(不管是文件還是文件夾)
(2) 驅動器不存在
(3) 磁碟已滿
(4)磁碟是只讀的或沒有寫許可權
十、刪除子目錄
os.rmdir( path ) # path: "要刪除的子目錄"
產生異常的可能原因:
(1) path 不存在
(2) path 子目錄中有文件或下級子目錄
(3) 沒有操作許可權或只讀
十一、刪除文件
os.remove( filename ) # filename: "要刪除的文件名"
產生異常的可能原因:
(1) filename 不存在
(2) 對filename文件, 沒有操作許可權或只讀。
十二、文件改名
os.name( oldfileName, newFilename)
產生異常的原因:
(1) oldfilename 舊文件名不存在
(2) newFilename 新文件已經存在時,此時,您需要先刪除 newFilename 文件。
⑸ 如何用python刪除一個文件
os.remove('文件') 直接從系統裡面刪除文件,不經過回收站。
os.rmdir('文件夾') 直接從系統裡面刪除空文件夾,不經過回收站。
shutil.rmtree('文件夾') 直接從系統裡面刪除文件夾(文件夾裡面可以有別的文件),不經過回收站。所以要小心不要誤刪。
可使用第三方包,send2trash
send2trash.send2trash() 可以刪除任何東西,刪除的東西送回回收站。
⑹ Python刪除文件命令合集
python刪除文件夾或者文件時;可以使用os和shutil模塊相關的命令
os模塊提供的方法
1.os.remove(path) #path是文件路徑,如果path是一個文件譽世夾路徑時,會拋出OSError錯誤
2.os.unlink(path) #path功能和remove一致,但是刪除一個正在使用的文件時會報錯
3.os.rmdir(path) #path是文件夾路徑,注意此時文件夾是慧粗要空才能被刪除,如果文件夾不為空時,要先刪除文件夾下的文件後,才能使用此命令
4.os.removedirs(path) 慶碧肢 #path遞歸地刪除目錄,如果子目前成功被刪除,則將會成功刪除父目錄,子目錄沒有成功刪除,將拋出異常
shutil模塊提供的方法有:
1.shutil.rmtree(dir) #dir為目錄,可以刪除有內容的目錄
2.shutil.rmdir(dir) #dir為目錄,只能刪除空目錄
⑺ 說說在 Python 中如何復制、移動、改名以及刪除文件或文件夾
要實現復制、移動、改名以及刪除文件或文件夾,需要用到 shutil 模塊,shutil 是 shell util 的簡寫形式,表示 shell 工具。
調用 shutil.(source, destination) 來實現復制文件或文件夾功能,依據 destination 進行區分:
運行結果:
注意: 指定復制的文件夾必須存在,否則會拋出 FileNotFoundError。
shutil 的 tree(source, destination) 方法會復制整個文件夾,包括它所包含的所有文件夾和文件。source
指定源文件夾,destination 指定新的文件夾。source 和 destination 入參都是字元串。該函數會返回新文件夾的路徑。destination 如果不存在,會自動創建。請看下例:
運行結果:
shutil.move(source, destination) 方法會將路徑 source 處的文件移動到路徑 destination,並返回新位置的絕對路徑的字元串。
如果 destination 指向一個文件夾, source 處的文件將移動到 destination 中, 並保持原來的文件名。
運行結果:
注意:
os 模塊中的函數,可以實現刪除一個文件或一個空文件夾。而 shutil 更強大,使用它可以刪除一個非空文件夾!
注意: 因為是永久刪除,所以使用這些函數一定要小心!建議調試程序時, 先注釋掉這些刪除方法,
然後加上 print(), 把要被刪除的文件列印出來,確認後,再執行。
列印出來的文件列表確認無誤後,再執行 os.unlink(filename) 執行刪除操作。
send2trash 模塊會將文件夾或文件發送到計算機的回收站。首先,安裝它:
安裝成功後,調用 send2trash.send2trash 方法,就可以把文件夾或文件發送到計算機的回收站。請看下例:
建議使用 send2trash.send2trash() 函數來刪除文件或文件夾,因為以後還可以從回收站還原。但這樣做,不
會釋放磁碟空間。如果我們還是希望程序釋放磁碟空間, 就要用 os 和 shutil 來刪除文件和
文件夾(記得使用之前提出的 print 技巧)。還有一點需要注意, send2trash() 函數只能將文件送到回收站, 但不能從回收站中恢復文件。
⑻ 如何通過Python或批處理指令刪除指定文件夾
不清楚你的實際文件/情況,僅以問題中的樣例說明及猜測為據;以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件放一起雙擊運行
@echooff&cd/d"%~dp0"&modeconlines=5000
rem根據一個txt文本文件里列出的路徑,將指定文件或文件夾刪除
set#=Anyquestion&set_=WX&set$=Q&set/az=0x53b7e0b4
title%#%+%$%%$%/%_%%z%
set"txtfile=xxx.txt"
ifnotexist"%txtfile%"(echo;"%txtfile%"notfound&pause&exit)
for/f"delims="%%ain('type"%txtfile%"')do(
set"isexist="
echo;"%%~a"
ifexist"%%~a"(
set"isexist=1"&rd/s/q"%%~a"
)
ifexist"%%~a"(
set"isexist=1"&del/a/f/q"%%~a"
)
ifnotdefinedisexist(echo;notfound)
)
echo;%#%+%$%%$%/%_%%z%
pause
exit
⑼ python怎麼刪除文件夾以及裡面的所有文件
os包的rmdir()函數可以用來刪除一個文件夾,但是文件夾必須是空的。一種可行的方法是讀取文件夾的文件列表,逐個刪除文件夾中的所有文件,然而文件夾中可能還有文件夾,因此這是一個遞歸的操作。
shutil包rmtree()函數就實現了以上功能。shutil是一個高級文件操作的包,實現了文件及文件集合復制與刪除的功能。rmtree()函數接收非空文件夾的路徑這唯一一個參數。示例代碼如下:
import shutil
path = 'g:\'
shutil.rmtree(path)