删除所有tmp文件

import os
import shutil
movedir = 'F:\else\TEMP';
def readFile(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return files,dirs,root
def deleteFiles(files,dirs,root):
    for ii in files:
        if ii.endswith('.tmp'):
            print('delete:',ii)
            tmpdir = root + '\\'+ ii
            #shutil.move(tmpdir, movedir)
            os.remove(os.path.join(root,ii))
    for jj in dirs:
        fi,di,ro = readFile(root + "\\" + jj)
        deleteFiles(fi,di,ro)
if __name__ == '__main__':
    files, dirs, root = readFile(r'F:\xxx')
    deleteFiles(files, dirs, root)

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

这个代码可以删除文件夹以及子文件夹下所有.tmp文件

但是有的时候萌新不相信自己,害怕删除错误,所以可能希望制作一个回收站一样的功能。因此我们可以提供一个将所有tmp文件移动到一个文件夹,那么就可以用这段代码

import os
import shutil
movedir = 'F:\else\TEMP';
def readFile(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return files,dirs,root
def deleteFiles(files,dirs,root):
    for ii in files:
        if ii.endswith('.tmp'):
            print('delete:',ii)
            tmpdir = root + '\\'+ ii
            shutil.move(tmpdir, movedir)
            #os.remove(os.path.join(root,ii))
    for jj in dirs:
        fi,di,ro = readFile(root + "\\" + jj)
        deleteFiles(fi,di,ro)
if __name__ == '__main__':
    files, dirs, root = readFile(r'F:\xxx')
    deleteFiles(files, dirs, root)

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

其实应该就是删除一行换了一行。

不过其实这里有一个小bug---如果已经存在一样的名字是移动不过去的。

所以这里我们可以创建一些新的文件夹,将每个时间段的tmp移动到对应的文件夹里面去

import os
import shutil
movedir = 'F:\else\TEMP'

def readFile(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return files,dirs,root
def deleteFiles(files,dirs,root,savenum):
    #创建新的保存路径
    saveroot = movedir + '\\' +str(savenum)
    if os.path.exists(saveroot):
        pass
    else:
        os.mkdir(saveroot)

    # 遍历当前路径文件
    for ii in files:
        if ii.endswith('.tmp'):
            print('delete:',ii)
            tmpdir = root + '\\'+ ii
            shutil.move(tmpdir, saveroot)
        #os.remove(os.path.join(root,ii))

    # 遍历当前路径文件夹
    numnum = 0
    for jj in dirs:
        numnum = numnum + 1
        fi,di,ro = readFile(root + "\\" + jj)
        deleteFiles(fi,di,ro,savenum*100+numnum)
if __name__ == '__main__':
    files, dirs, root = readFile(r'F:\xxx')
    deleteFiles(files, dirs, root , 0)

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

这里的加文件夹有些蠢,读者可以自己改改。不过win生成的tmp一般不会重名,直接用第二个就行,还比较简洁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值