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)