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

例如删除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. redis之(八)redis的有序集合类型的命令

    [一]增加元素 --->命令:ZADD key score member [score member] --->向有序集合放入一个分数为score的member元素 --->元素存在 ...

  2. <一>dubbo框架学前原理介绍

    alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo.hsf),jms消息服务(napoli.notify),KV数据库(tair)等.这个框架/工具/产 ...

  3. hdu 3371(kruskal)

    Connect the Cities Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. catalina.out日志切割

    安装cronlog rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum ins ...

  5. centos7 mariaDB安装

    参考:http://www.linuxidc.com/Linux/2016-03/128880.htm

  6. 解决lazarus 多线程报错问题

    很多人都在Windows中使用线程技术,然后同样的代码移植到Linux下一运行就出错.一开始不解其中的奥妙.既然Lazarus提供了TThread类,也没注明非要在Windows下使用.没道理在Lin ...

  7. 北邮校赛 I. Beautiful Array(DP)

    I. Beautiful Array 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...

  8. Linux命令之chmod

    chmod [选项] … MODE[,MODE] … FILE … chmod [选项] … OCTAL-MODE FILE … chmod [选项] … --reference=RFILE FILE ...

  9. Flask实战第44天:完成前台注册功能

    注册功能后端逻辑 用户注册要把注册的表单提交上来,因此,我要先对表单进行验证,编辑front.forms from apps.forms import BaseForm from wtforms im ...

  10. 数据库SQL归纳(一)

    SQL功能分类 SQL 功能 动 词 数据定义 DDL CREATE.ALTER.DROP 数据查询 DQL SELECT 数据更改 DML INSERT.UPDATE.DELETE 数据控制 DCL ...