python2.7删除文件夹和删除文件代码实例
python2.7删除文件夹和删除文件代码实例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#!c:python27python.exe#-*-coding:utf-8-*-importosimportrefrom...

复制代码 代码如下:

#!c:python27python.exe

# -*- coding: utf-8 -*-

import os

import re

from os import path

from shutil import rmtree

DEL_DIRS = None

DEL_FILES = r'(.+?.pyc$|.+?.pyo$|.+?.log$)'

def del_dir(p):

"""Delete a directory."""

if path.isdir(p):

rmtree(p)

print('D : %s' % p)

def del_file(p):

"""Delete a file."""

if path.isfile(p):

os.remove(p)

print('F : %s' % p)

def gen_deletions(directory, del_dirs=DEL_DIRS, del_files=DEL_FILES):

"""Generate deletions."""

patt_dirs = None if del_dirs == None else re.compile(del_dirs)

patt_files = None if del_files == None else re.compile(del_files)

for root, dirs, files in os.walk(directory):

if patt_dirs:

for d in dirs:

if patt_dirs.match(d):

yield path.join(root, d)

if patt_files:

for f in files:

if patt_files.match(f):

yield path.join(root, f)

def confirm_deletions(directory):

import Tkinter

import tkMessageBox

root = Tkinter.Tk()

root.withdraw()

res = tkMessageBox.askokcancel("Confirm deletions?",

"Do you really wish to delete?nn"

"Working directory:n%snn"

"Delete conditions:n(D)%sn(F)%s"

% (directory, DEL_DIRS, DEL_FILES))

if res:

print('Processing...')

m, n = 0, 0

for p in gen_deletions(directory):

if path.isdir(p):

del_dir(p)

m += 1

elif path.isfile(p):

del_file(p)

n += 1

print('Clean %d dirs and %d files.' % (m, n))

root.destroy()

else:

print('Canceled.')

root.destroy()

root.mainloop()

if __name__ == '__main__':

import sys

argv = sys.argv

directory = argv[1] if len(argv) >= 2 else os.getcwd()

confirm_deletions(directory)

# import subprocess

# subprocess.call("pause", shell=True)

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类