python删除文件的例子

关于Python程序的运行,其实一个Python程序就相当于一个应用程序,它不需要经过编译,只需要用户电脑上面安装Python环境即可。要运行一个py程序,直接双击这个py文件即可。一般情况下,没有提示用户输入或控制屏幕显示,打开一个py文件时会突然闪一下马上就退出,这是由于程序运行已经完成了。若需要显示,则要添加一个屏幕暂停的代码: 

os.system('pause') 在使用这个代码前,需要引用os模块:import os

下面开始介绍删除文件的Python程序设计: 

很多软件在运行时会自动创建一些备份文件,在程序退出后又不自动删除备份文件,随着文件数量的增加,每隔一段时间就要清理一下。如果文件数量比较多,手工清理显然比较麻烦。于是可以编写一个Python脚本来完成该任务。如下代码: 

# -*- coding: utf-8 -*-
#file:E01.py
import os
#该函数用于删除文件
def scan(arg, dirname, names):
    for file in names:
        if file[0]=="~" or file[-4:]==".bak":
            print "删除文件:", file
            file=dirname+"\\"+file
            os.remove(file)
    print "完成!"

#提示用户输入目录路径
path=raw_input("请输入要删除文件所在目录:(如D:\\temp)")
if os.path.exists(path)==False: #检查用户输入的目录是否存在,如果不存在则退出程序
    print "输入的目录不存在!"
    os._exit(1)
os.path.walk(path, scan, 0)
os.system('pause')

由于python编码问题,对于上面乱码的情况,对源代码稍做修改,具体如下:

#coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding("cp936")
import os
#该函数用于删除文件
def scan(arg, dirname, names):
    for file in names:
        if file[0]=="~" or file[-4:]==".bak":
            print "删除文件:", file
            file=dirname+"\\"+file
            os.remove(file)
    print "完成!"

#提示用户输入目录路径
path=raw_input(u"请输入要删除文件所在目录:(如D:\\temp)")
if os.path.exists(path)==False: #检查用户输入的目录是否存在,如果不存在则退出程序
    print "输入的目录不存在!"
    os._exit(1)
os.path.walk(path, scan, 0)
os.system('pause')

关于Python的乱码解决方案请访问:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

http://blog.csdn.net/zm2714/article/details/8072474

python 中文乱码问题深入分析

http://blog.csdn.net/zm2714/article/details/7975449

Python 使用 UTF-8 编码,python代码中包含中文时执行脚本错误的解决办法。

http://blog.csdn.net/zm2714/article/details/7988432

运行该程序,它将删除用户指定目录下的以波浪符号(~)开头或以后缀(.bak)结尾的文件。

下面来分析这段代码。

首先,系统操作都在os模型中,所有首先需要导入os模型。

然后提示用户输入文件目录,同时检查用户输入的文件目录是否正确。检验目录是否存在使用os.path.exists(path)方法,如果返回True则表示目录存在,如果返回False则表示不存在,则退出程序。

退出Python程序采用os._exit(1)方法。

os.path.walk()方法是访问目录中的每个目录以及文件,在该方法内调用函数scan。函数scan的参数指定为3个,其中names表示目录内所有文件的名称,为列表类型。然后对于每一个文件检查其文件名是否符合要删除文件名的特征(以波浪符号(~)开头或以后缀(.bak)结尾的文件),如果符合要求,则采用os.remove(file)方法删除。在此值得注意的是,采用os.remove(file)方法删除文件,要求参数file为全路径和文件名,如D:\temp\1.bak。 

如果要删除tmp临时文件,只需要将上段代码中的“file[-4:]==".bak"”更改为“file[-4:]==".tmp"”即可。

最后一句(os.system('pause'))表示屏幕暂停。 

来源:http://www.jb51.net/article/26544.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值