工作中经常遇到要删除某些目录下的特定文件

例如删除xxx目录下的所有test开头文件或者.pyc结尾的文件

如果手动删除的话,很麻烦,写个程序自动删除

只需要运行的时候输入路径和文件名即可,不输入文件名则删除目录下所有文件

下面贴代码

# -*- coding:utf-8 -*-
"""
this is a program to delete specified files
""" import os
import sys
import getopt def usage():
print 'this is a program to delete all specified files in the specified path\n' \
'-h --help show this usage\n' \
'-f --filename delete all files start with this filename, such as test or pyc\n if not specified, delete all files' \
'-p --path delete files from the specified path\n' def get_argument():
try:
path = ''
filename = ''
opts, args = getopt.getopt(sys.argv[1:], 'hf:p:', ['--help', '--filename', '--path'])
for o, a in opts:
if o in ['-h', '--help']:
usage()
sys.exit()
if o in ['-f', '--filename']:
filename = a
if o in ['-p', '--path']:
path = a
if filename:
delete_files_with_filename(path, filename)
else:
delete_all_files(path)
except getopt.GetoptError:
usage()
sys.exit() def delete_files_with_filename(path, filename=None):
del_list = os.listdir(path)
for f in del_list:
filepath = os.path.join(path, f)
if os.path.isfile(filepath):
if filename in f:
os.remove(filepath)
elif os.path.isdir(filepath):
delete_files_with_filename(filepath, filename) def delete_all_files(path):
del_list = os.listdir(path)
for f in del_list:
filepath = os.path.join(path, f)
if os.path.isfile(filepath):
os.remove(filepath)
elif os.path.isdir(filepath):
delete_all_files(filepath)
os.rmdir(filepath) if __name__ == '__main__':
get_argument()

python利用os和getopt实现删除指定文件的更多相关文章

  1. linux下利用inode删除指定文件文件

    本文主要介绍使用inode删除异常文件名的文件的方法,供大家参考: 在Linux中,有时候会遇到文件名是乱码或者是某些特殊中文的文件,这时候通过文件名就很难删除. 同时,对于linux中的任何一个文件 ...

  2. Git中删除指定文件

    之前的博客Git基础使用教程介绍了Git这个开源分布式管理系统的一些基础操作,这篇博客,介绍下如何利用Git删除远程仓库的文件... 1.拉取远程仓库的文件到本地 git clone xxx 如果还未 ...

  3. FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹),就是删除所有

    2018-11-05  19:42:08开始写 选择 删除 1.FileUtils.java类 import java.io.File;//导入包 import java.util.List;//导入 ...

  4. bat 延时删除指定文件夹中的文件经验分享

    1.bat延时 xp程序中通过ping 127.0.0.1 -n 20 来实现延时操作,ping本地地址20行. win7中通过timeout 20 来实现延时20秒. 2.删除指定文件 del /q ...

  5. PHP批量清空删除指定文件夹内容

    PHP批量清空删除指定文件夹内容: cleancache.php <?php // 清文件缓存 $dirs = array( realpath(dirname(__FILE__) . '/../ ...

  6. Qt删除指定文件

    Qt删除指定文件: QFile fileTemp(filename); fileTemp.remove();

  7. php 删除指定文件夹

    php 删除指定文件夹 1.前言 目标:php删除一个指定目录 所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作 ...

  8. del命令实现全盘删除指定文件

    @echo off Rem :全盘删除指定文件 set "fileName=Normal.dotm" set "outPutPath=C:\result.txt" ...

  9. Java:<获取>、<删除>指定文件夹及里面所有文件

    工具类代码如下: 一.获取 public Class Test{ //定义全局变量,存放所有文件夹下的文档 List<String> fileList ; public List<S ...

随机推荐

  1. Eclipse的工程名有红色的感叹号,工程里面没有显示编译错误

    在导入其他人或配套光盘中的工程时,经常会出现这种错误. 问题的原因: 通常是JRE的版本不同造成的. 解决的办法: 是选择工程名,然后通过在右键菜单中选择build path->configue ...

  2. 事务时间如何去掉wasted time

    事务时间如何去掉wasted time   事务时间 一个事务的时间是指持续时间,事务会完全记录下从事务开始到事务结束之间的时间差,那么事务的时间能真实地反映业务操作的时间吗?不能,就好像人用手按秒表 ...

  3. php-cgi segmentation fault nginx

    谷歌.百度了一堆后,无果. yum安装软件也报segmentation fault 果断重装系统吧

  4. hdu 5576 dp

    题目大意:给你一个长度为 n 的 字符串表示一个乘法,一次操作随机选两个字符进行交换,进行m次操作,让你求出所有可能操作 的答案和.  (1 <= n, m <= 50) 思路:巨难.. ...

  5. Outlook Font

  6. NetCore项目的部署

    NetCore项目和以前的AspNet项目在部署上有很大的不同,因为NetCore是跨平台的 NetCore支持Kestrel和IIS两种方式,看代码的11行和14行 using System.IO; ...

  7. Spring中的设计模式2

    Spring设计模式分析   工厂模式和单态模式 工厂模式:可以将java对象对象的调用者从被调用者的实现逻辑中分离.调用者只关心被调用者必须满足的某种规则,这种规则我们看做是接口,不必关心实例的具体 ...

  8. 【20181023T2】行星通道计划【二维BIT】

    题面 [错解] 唉好像有规律啊(x2>x1,y2>y1) 唉好像是个偏序啊 然后上CDQ套树状数组 唉怎么大样例跑了十多秒啊 可能有问题吧-- 刷刷刷把T3写了,回来 唉怎么写了个memc ...

  9. 【并查集】星球大战starwar

    BZOJ1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 6407  Solved: 2973[Su ...

  10. 【极角排序】【扫描线】hdu6127 Hard challenge

    平面上n个点,每个点带权,任意两点间都有连线,连线的权值为两端点权值之积.没有两点连线过原点.让你画一条过原点直线,把平面分成两部分,使得直线穿过的连线的权值和最大. 就把点极角排序后,扫过去,一侧的 ...