python利用os和getopt实现删除指定文件
Posted 菲菲菲菲菲常新的新手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python利用os和getopt实现删除指定文件相关的知识,希望对你有一定的参考价值。
工作中经常遇到要删除某些目录下的特定文件
例如删除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实现删除指定文件的主要内容,如果未能解决你的问题,请参考以下文章
python-os.rmdir与shutil.rmtree的区别和用法