比较实验,如何批量清理系统有的时候文件

By admin in 4858.com on 2019年7月14日

语言之争已经过了相当短时间,上面做一些IO实验(遍历9G多的文件,批量剔除),尽量用实际来相比较什么人优什么人劣。操作系统:win7
64 位,文件包大小:9.68G。

语言之争由来已经相当久,上面做一些IO实验(遍历9G多的公文,批量删减),尽量用事实来相比什么人优什么人劣。操作系统:win7 六拾陆人,文件包大小:9.68G。

言语之争由来已经十分久,上面做一些IO实验(遍历9G多的文本,批量刨除),尽量用真情来比较什么人优何人劣。操作系统:win7 62位,文件包大小:9.68G。

在机械学习中,相当多时候我们供给Python和C的搅动编制程序,最要害的来头是为了品质效能的进级:
解释型语言一般比编译型语言慢,一般升高性能的有用做法是,先做性能测量检验,找寻品质瓶颈部分,然后把瓶颈部分在扩大中落实。

一、语言:C#

一、语言:C#

一、语言:C#

本文的对象是在windows平台下(使用pycharm),实现python调用C语言编写的程序。主要参照他事他说加以考察资料:

付出碰到:vs 二零一一

支付意况:vs 贰零壹叁

付出情状:vs 二零一二

  • python扩张完结情势–python与c混和编制程序
  • 混合编制程序:用 C 语言来扩大 Python
    大法吧!

代码总行数:43行

代码总行数:43行

代码总行数:43行

地方两篇博客已经写得很详细,不过都以基于linux平台和mac,小编这里终于作为一篇windows平台的填补和小结,还可能有温馨踩的片段坑,跟我们分享。

耗时:7秒

耗时:7秒

耗时:7秒

要使用python使用c语言编写的次第,大约分为三种办法,一种是纯手写,一种是用第三方的接口工具。本文将分为两有些各自汇报。

代码:

代码:

代码:

一.纯手写调用c语言

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BatchDelete
{
class Program
{
static void Main(string[] args)
{
// 输入目录 e:\tmp
string path;
Console.WriteLine("输入要清理的目录:");
path = Console.ReadLine();
// 开始计时
Console.WriteLine("开始计时:"+DateTime.Now.ToString("HH:mm:ss"));
// 先遍历匹配查找再循环删除
if (Directory.Exists(path))
{
Console.Write("正在删除");
foreach (string fileName in Directory.GetFileSystemEntries(path))
{
if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
{
File.Delete(fileName);
}
}
Console.WriteLine("");
}
else
{
Console.WriteLine("该目录不存在!");
}
// 计时结束
Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BatchDelete
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输入目录 e:\tmp
            string path;
            Console.WriteLine("输入要清理的目录:");
            path = Console.ReadLine();
            // 开始计时
            Console.WriteLine("开始计时:"+DateTime.Now.ToString("HH:mm:ss"));
            // 先遍历匹配查找再循环删除
            if (Directory.Exists(path))
            {
                Console.Write("正在删除");
                foreach (string fileName in Directory.GetFileSystemEntries(path))
                {
                    if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
                    {
                        File.Delete(fileName);
                    }
                }
                Console.WriteLine("");
            }
            else
            {
                Console.WriteLine("该目录不存在!");
            }
            // 计时结束
            Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BatchDelete
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输入目录 e:\tmp
            string path;
            Console.WriteLine("输入要清理的目录:");
            path = Console.ReadLine();
            // 开始计时
            Console.WriteLine("开始计时:"+DateTime.Now.ToString("HH:mm:ss"));
            // 先遍历匹配查找再循环删除
            if (Directory.Exists(path))
            {
                Console.Write("正在删除");
                foreach (string fileName in Directory.GetFileSystemEntries(path))
                {
                    if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
                    {
                        File.Delete(fileName);
                    }
                }
                Console.WriteLine("");
            }
            else
            {
                Console.WriteLine("该目录不存在!");
            }
            // 计时结束
            Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
            Console.ReadKey();
        }
    }
}

1.编写制定和调节和测验c语言程序

<p>
在windows下编制c语言面对一个选项编写翻译器的主题素材,不像linux一样能够直接选择gcc。这里本身引入应用VisualStudio2010用作c语言程序开辟的IDE。倘诺你一初始就挑选了vs2009,将要末尾时代会省去过多行事。这是因为python2.7在windows下的编写翻译器正是运用vs2010的工具。当然如若您用别的版本的vs,前面也可以有消除措施。还会有个别同学挑选选拔gcc在windows下的本子,也正是minGccForWin。可是不推荐这种措施,传说那在后期会有那么些莫明其妙的标题。
<p>ok,假若你安装了vs的另外二个本子,我们编辑以下c语言程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Python.h"
#define BUFSIZE 10
char *reverse(char *s) {    
  register char t;
  char *p = s; 
  char *q = (s + (strlen(s) - 1));    
  while (p < q) {       
    t = *p;      
    *p++ = *q;       
    *q-- = t;    
  }    
  return s;
}
int main() {    
  char s[BUFSIZE];    
  strcpy(s, "abcdef");    
  printf("reversing 'abcdef', we get '%s'\n", reverse(s));    
  strcpy(s, "madam");    
  printf("reversing 'madam', we get '%s'\n", reverse(s));    return 0;
}

<p>在那之中reverse函数完毕的是字符串翻转的效应,参加main函数是为着单元测量试验。

运作效果图:

运转效果图:

运作效果图:

2.应用样板来包装代码

<p>第一步调节和测量试验完程序以往,要拓展代码包装。

  • 包含python头文件

#include "Python.h"
  • 为每多个函数增添二个型如PyObject* Module_func()的包裹函数

static PyObject *Extest_reverse(PyObject *self, PyObject *args) {    
  char *orignal;    
  //s表示需要传递进来的参数类型为字符串,如果是,就赋值给original,如果不是,返回NULL;
  if (!(PyArg_ParseTuple(args, "s", &orignal))) {        
    //包装函数返回NULL,就会在Python调用中产生一个TypeError的异常
    return NULL;    
  }    
//需要把c中计算的结果转成python对象,s代表字符串对象类型。
return (PyObject *)Py_BuildValue("s", reverse(orignal));
}

<p>最关键的四个个点子:

1.PyArg_ParseTuple(args, "s", &orignal)

将python格式的参数依照钦点格式解析,转存。

2.y_BuildValue("s", reverse(orignal))

将c格式的结果依据钦赐格式转变来python格式。
<p>上面是python和c对应的类型转变参数表:

4858.com 1

参数转换.png

Py_BuildValue的用法表:

4858.com 2

Py_BuildValue的用法表.png

注:上面两张图来源python扩充完结方式–python与c混和编制程序
<p>

  • 为各类模块增加一个型如PyMethodDef ModuleMethods[]的数组

static PyMethodDefExtestMethods[] = {    
  {"fac", Extest_fac, METH_VARARGS},    
  {"doppel", Extest_doppel, METH_VARARGS},    
  {"reverse", Extest_reverse, METH_VARARGS},    
  {NULL, NULL},
};

<p>有了这几个宣称,python就可以方便地找到方法了。METH_比较实验,如何批量清理系统有的时候文件。VARA揽胜极光GS代表参数以tuple的款型传播。

  • 日增模块起头化函数void initMethod()

void initExtest() {    
  Py_InitModule("Extest", ExtestMethods);
}

末段步向在模块被python导入时打开调用的代码。

<p>至此,包装代码的干活甘休。把下边包车型地铁代码按顺序组装就可以。

4858.com 3

4858.com 4

4858.com 5

3.编写翻译与测量试验

编写setup.py

from distutils.core import setup, Extension
MOD = 'Extest'
setup(name=MOD, ext_modules=[Extension(MOD, sources=['Extest.c'])])

喜悦的随时到了,初叶编写翻译,输入:

python setup.py build

然则,报错了,那是怎样?

error: Unable to find vcvarsall.bat

也许编写翻译器出了难点。若是您从未设置VS二零一零,一般都会际遇这么些主题材料。以下给出化解措施:

  • 1.先去下载Microsoft Visual C++ Compiler for Python
    2.7
  • 2.安装
    再来试试。

python setup.py build

缘何依旧报同样的失实??

  • 3.手动改写注册表
    这里要思虑你的python是33位依旧62位的。
    打开regedit。添加项:

32位:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Setup\VC
4858.com,64位:
HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC

此项下新建字符串值: 名称:productdir
数码:vcvarsall.bat所在路线
注意:路线中不包涵最终的反斜杠。
再来试试。

python setup.py build

好的,此番成功了。项目目录中新添了四个build文件夹:

4858.com 6

build.jpg

我们用的时候只须求Extest.pyd文件就可以。其实本质上正是.dll动态链接库。

<p>调用的次序:

#coding=utf-8
import os
import sys
sys.path.append(os.getcwd() +"/build/lib.win32-2.7/") 
import Extest as extes
print extest.reverse('hello')

抑或像这么:

python setup.py build_ext --inplace

如此那般,pyd文件会直接到当前目录,直接import就能够。这种办法比较推荐!

4858.com 7

目录.jpg

<p>另一种办法是平昔install。即

python seup.py install

那般就足以一直import了。

二、语言:C/C++

 

 

4.品质测量检验

编辑质量测量检验的代码如下:

#coding=utf-8
import Extest as extest
import time
def python_reverse(string):    
  return string[::-1]
start = time.time()
for i in range(100000):    
  extest.reverse('string hahahahahaha')
print u'使用c花费:'
print time.time()-start
start = time.time()
for j in range(100000):    
  python_reverse('string hahahahahaha')
print u'使用python花费:'
print time.time()-start

结果:

4858.com 8

测验结果.jpg

可以看出,用c照旧比python快的。

<p>至此,手写的点子介绍实现。

支付意况:vs 二零一二

二、语言:C/C++

二、语言:C/C++

二.使用Swig

<p>使用swig相对简单,可是当您习感到常了手写未来,相信手写也是很有利的。当然,不管您利用swig依然手写,用windows的话,上边安装vc编写翻译器还会有修改注册表的步调都以绕可是去的。

代码总行数:50行

付出情况:vs 二〇一三

支付景况:vs 二零一三

1.下载、安装swig

去官网下载。
参考合意大利语档。
设置完别忘了增加境况变量。

耗时:36秒

代码总行数:50行

代码总行数:50行

2.编纂、调节和测量检验c语言程序

  • example.h

/*File: example.h*/
int fact(int n);
  • example.c

/* File: example.c */
//计算n!
#include "example.h"
int fact(int n) {  
   if (n < 0){ 
    /* This should probably return an error, but this is simpler */      
    return 0; 
  }  
  else  if (n == 0) {          
    return 1;                  
  }  
  else {          
    /* testing for overflow would be a good idea here */          
    return n * fact(n-1);        
  }
}

代码:

耗时:36秒

耗时:36秒

3.配置swig,编译

  • example.i

/* File: example.i */
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
int fact(int n);

配备文件宣称了模块名称,原c语言程序,以及艺术。
在极端运维:

swig -python example.i

假如编译的是C++文件,需求丰裕-C++选项:

swig -c++ -python example.i

运作完那些命令后,在职业目录里会现出example_wrap.c和example.py,不过未来以此模块还不能够直接调用,因为还贫乏动态链接库。
亟需编写制定setup.py如下:

"""    setup.py file for SWIG example"""
from distutils.core import setup, Extension
example_module = Extension('_example',
                               sources=['example_wrap.c', 'example.c'],                         )
setup(name = 'example',    version = '0.1',    author = "SWIG Docs",    description = """Simple swig example from docs""",    ext_modules = [example_module],    py_modules = ["example"],    )

在极端里输入:

python setup.py build_ext --inplace

那儿目录里多了贰个.pyd文件,马到成功。

#include <iostream>
#include <string>
#include <Windows.h>
#include <boost\filesystem\operations.hpp>
#include <boost\filesystem\path.hpp>
#include <boost\filesystem\convenience.hpp>
#include <boost\algorithm\string.hpp>
using namespace std;
int main(int argc, char * argv[])
{
// 输入目录 e:\tmp
string strPath;
cout << "输入要清理的目录:" << endl;
getline(cin, strPath);
// 开始计时 
SYSTEMTIME sys_time; //声明变量
GetLocalTime(&sys_time); //将变量值设置为本地时间
printf("开始计时:%02d:%02d:%02d\n", sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
// 先遍历匹配查找再循环删除
namespace fs = boost::filesystem;
fs::path full_path(fs::initial_path());
full_path = fs::system_complete(fs::path(strPath, fs::native));
if (fs::exists(full_path))
{
cout << "正在删除" ;
fs::directory_iterator item_begin(full_path);
fs::directory_iterator item_end;
for (; item_begin != item_end; item_begin++)
{
if (!fs::is_directory(*item_begin))
{
if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(), "cachegrind.out"))
{
fs::remove(item_begin->path());
}
}
}
cout << "" << endl;
}
else
{
cout << "该目录不存在!" << endl;
}
// 计时结束
GetLocalTime(&sys_time);
printf("计时结束:%02d:%02d:%02d\n", sys_time.wHour, sys_time.wMinute, sys_time.wSecond);
system("pause");
return 0;
}

代码:

代码:

4.使用

4858.com 9

使用.jpg

运营效果图:

#include <iostream>
#include <string>
#include <Windows.h>
#include <boost\filesystem\operations.hpp>
#include <boost\filesystem\path.hpp>
#include <boost\filesystem\convenience.hpp>
#include <boost\algorithm\string.hpp>
using namespace std;

int main(int argc, char * argv[])
{
    // 输入目录 e:\tmp
    string strPath;
    cout << "输入要清理的目录:" << endl;
    getline(cin, strPath);
    // 开始计时    
    SYSTEMTIME sys_time;        //声明变量
    GetLocalTime(&sys_time);    //将变量值设置为本地时间
    printf("开始计时:%02d:%02d:%02d\n", sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
    // 先遍历匹配查找再循环删除
    namespace fs = boost::filesystem;
    fs::path full_path(fs::initial_path());
    full_path = fs::system_complete(fs::path(strPath, fs::native));
    if (fs::exists(full_path))
    {
        cout << "正在删除" ;
        fs::directory_iterator item_begin(full_path);
        fs::directory_iterator item_end;
        for (; item_begin != item_end; item_begin++)
        {
            if (!fs::is_directory(*item_begin))
            {
                if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(), "cachegrind.out"))
                {
                    fs::remove(item_begin->path());
                }
            }
        }
        cout << "" << endl;
    }
    else
    {
        cout << "该目录不存在!" << endl;
    }
    // 计时结束
    GetLocalTime(&sys_time);
    printf("计时结束:%02d:%02d:%02d\n", sys_time.wHour, sys_time.wMinute, sys_time.wSecond);
    system("pause");
    return 0;
}
#include <iostream>
#include <string>
#include <Windows.h>
#include <boost\filesystem\operations.hpp>
#include <boost\filesystem\path.hpp>
#include <boost\filesystem\convenience.hpp>
#include <boost\algorithm\string.hpp>
using namespace std;

int main(int argc, char * argv[])
{
    // 输入目录 e:\tmp
    string strPath;
    cout << "输入要清理的目录:" << endl;
    getline(cin, strPath);
    // 开始计时    
    SYSTEMTIME sys_time;        //声明变量
    GetLocalTime(&sys_time);    //将变量值设置为本地时间
    printf("开始计时:%02d:%02d:%02d\n", sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
    // 先遍历匹配查找再循环删除
    namespace fs = boost::filesystem;
    fs::path full_path(fs::initial_path());
    full_path = fs::system_complete(fs::path(strPath, fs::native));
    if (fs::exists(full_path))
    {
        cout << "正在删除" ;
        fs::directory_iterator item_begin(full_path);
        fs::directory_iterator item_end;
        for (; item_begin != item_end; item_begin++)
        {
            if (!fs::is_directory(*item_begin))
            {
                if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(), "cachegrind.out"))
                {
                    fs::remove(item_begin->path());
                }
            }
        }
        cout << "" << endl;
    }
    else
    {
        cout << "该目录不存在!" << endl;
    }
    // 计时结束
    GetLocalTime(&sys_time);
    printf("计时结束:%02d:%02d:%02d\n", sys_time.wHour, sys_time.wMinute, sys_time.wSecond);
    system("pause");
    return 0;
}

4858.com 10

运行效果图:

运营效果图:

三、语言:PHP

4858.com 11

4858.com 12

付出情形:Phpstorm

三、语言:PHP

三、语言:PHP

代码总行数:32行

付出情形:Phpstorm

支付景况:Phpstorm

耗时:13秒

代码总行数:32行

代码总行数:32行

代码:

耗时:13秒

耗时:13秒

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 16-1-29
* Time: 上午9:31
*/
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '<br/>';
//先遍历匹配查找再循环删除
if(is_dir($path))
{
echo "正在删除";
$mydir = dir($path);
while($file = $mydir->read())
{
if(file_exists("$path/$file") && strpos($file, 'cachegrind.out') === 0)
{
unlink("$path/$file");
}
}
echo '<br/>';
}
else
{
echo "该目录不存在!" . '<br/>';
}
//计时结束
echo date("H:i:s",time()) . '<br/>'; 

代码:

代码:

运作效果图:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-1-29
 * Time: 上午9:31
 */
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '<br/>';
//先遍历匹配查找再循环删除
if(is_dir($path))
{
    echo "正在删除";
    $mydir = dir($path);
    while($file = $mydir->read())
    {
        if(file_exists("$path/$file") && strpos($file, 'cachegrind.out') === 0)
        {
            unlink("$path/$file");
        }
    }
    echo '<br/>';
}
else
{
    echo "该目录不存在!" . '<br/>';
}
//计时结束
echo date("H:i:s",time()) . '<br/>';
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-1-29
 * Time: 上午9:31
 */
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '<br/>';
//先遍历匹配查找再循环删除
if(is_dir($path))
{
    echo "正在删除";
    $mydir = dir($path);
    while($file = $mydir->read())
    {
        if(file_exists("$path/$file") && strpos($file, 'cachegrind.out') === 0)
        {
            unlink("$path/$file");
        }
    }
    echo '<br/>';
}
else
{
    echo "该目录不存在!" . '<br/>';
}
//计时结束
echo date("H:i:s",time()) . '<br/>';

4858.com 13

运转效果图:

运维效果图:

四、语言:Java

4858.com 14

4858.com 15

开拓条件:eclipse

四、语言:Java

四、语言:Java

代码总行数:43行

开采条件:eclipse

支出条件:eclipse

耗时:10秒

代码总行数:43行

代码总行数:43行

代码:

耗时:10秒

耗时:10秒

package com.yejing;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// 输入目录 e:\tmp
String path = null;
System.out.println("输入要清理的目录:");
path = s.next();
// 开始计时
Date nowTime=new Date(); 
SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss"); 
System.out.println("开始计时:"+ time.format(nowTime)); 
// 先遍历匹配查找再循环删除
File dir = new File(path);
if(dir.exists()){
System.out.print("正在删除");
File[] fs = dir.listFiles();
for(int i=0;i<fs.length;i++){
if(!fs[i].isDirectory()){
if(fs[i].isFile() && fs[i].exists() && fs[i].getName().contains("cachegrind.out"))
{
fs[i].delete(); 
}
}
}
System.out.println("");
}else{
System.out.println("该目录不存在!");
}
// 计时结束
nowTime=new Date(); 
System.out.println("开始计时:"+ time.format(nowTime)); 
}
}

代码:

代码:

运行效果图:

package com.yejing;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        // 输入目录 e:\tmp
        String path = null;
        System.out.println("输入要清理的目录:");
        path = s.next();
        // 开始计时
        Date nowTime=new Date(); 
        SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss"); 
        System.out.println("开始计时:"+ time.format(nowTime)); 
        // 先遍历匹配查找再循环删除
        File dir = new File(path);
        if(dir.exists()){
            System.out.print("正在删除");
            File[] fs = dir.listFiles();
            for(int i=0;i<fs.length;i++){
                if(!fs[i].isDirectory()){
                    if(fs[i].isFile() && fs[i].exists() && fs[i].getName().contains("cachegrind.out"))
                    {
                        fs[i].delete();  
                    }
                }
            }
            System.out.println("");
        }else{
            System.out.println("该目录不存在!");
        }
        // 计时结束
        nowTime=new Date(); 
        System.out.println("开始计时:"+ time.format(nowTime)); 
    }

}
package com.yejing;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        // 输入目录 e:\tmp
        String path = null;
        System.out.println("输入要清理的目录:");
        path = s.next();
        // 开始计时
        Date nowTime=new Date(); 
        SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss"); 
        System.out.println("开始计时:"+ time.format(nowTime)); 
        // 先遍历匹配查找再循环删除
        File dir = new File(path);
        if(dir.exists()){
            System.out.print("正在删除");
            File[] fs = dir.listFiles();
            for(int i=0;i<fs.length;i++){
                if(!fs[i].isDirectory()){
                    if(fs[i].isFile() && fs[i].exists() && fs[i].getName().contains("cachegrind.out"))
                    {
                        fs[i].delete();  
                    }
                }
            }
            System.out.println("");
        }else{
            System.out.println("该目录不存在!");
        }
        // 计时结束
        nowTime=new Date(); 
        System.out.println("开始计时:"+ time.format(nowTime)); 
    }

}

4858.com 16

运作效果图:

运维效果图:

五、语言:Python 3.3.5

4858.com 17

4858.com 18

支出条件:IDLE

五、语言:Python 3.3.5

五、语言:Python 3.3.5

代码总行数:20行

支出条件:IDLE

付出条件:IDLE

耗时:10秒

代码总行数:20行

代码总行数:20行

代码:

耗时:10秒

耗时:10秒

# -*- coding: utf-8 -*- 
import datetime
import os
# 输入目录 e:\tmp
path = input("输入要清理的目录:\n");
# 开始计时
print("开始计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# 先遍历匹配查找再循环删除
if(os.path.exists(path)):
print("正在删除");
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
targetFile = os.path.join(parent,filename)
if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
os.remove(targetFile)

代码:

代码:

else:

# -*- coding: utf-8 -*-  
import datetime
import os

# 输入目录 e:\tmp
path = input("输入要清理的目录:\n");
# 开始计时
print("开始计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# 先遍历匹配查找再循环删除
if(os.path.exists(path)):
    print("正在删除");
    for parent,dirnames,filenames in os.walk(path):
        for filename in filenames:
            targetFile = os.path.join(parent,filename)
            if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
                os.remove(targetFile)
else:
    print("该目录不存在!");
# 计时结束
print("结束计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# -*- coding: utf-8 -*-  
import datetime
import os

# 输入目录 e:\tmp
path = input("输入要清理的目录:\n");
# 开始计时
print("开始计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# 先遍历匹配查找再循环删除
if(os.path.exists(path)):
    print("正在删除");
    for parent,dirnames,filenames in os.walk(path):
        for filename in filenames:
            targetFile = os.path.join(parent,filename)
            if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
                os.remove(targetFile)
else:
    print("该目录不存在!");
# 计时结束
print("结束计时:",datetime.datetime.now().strftime('%H:%M:%S'));
print("该目录不存在!");
# 计时结束
print("结束计时:",datetime.datetime.now().strftime('%H:%M:%S')); 

运维效果图:

运作效果图:

运转效果图:

4858.com 19

4858.com 20

4858.com 21

您可能感兴趣的篇章:

  • python完毕的文件夹清理程序分享
  • 磁盘垃圾文件清理器python代码达成

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有