Python - 删除Temp中的所有文件

时间:2016-06-15 15:30:16

标签: python windows

如何删除temp中的所有文件?

感谢凯文,我将其改进为:

tmp = os.environ.get("TMP")
def remc(tmp):
    if tmp:
        try:
            for f in os.listdir(tmp):
                ntmp = os.path.join(tmp,f)
                os.remove(ntmp)
        except OSError:
            pass 

不,我仍然遇到OSError问题,如果我想继续下一个文件怎么办呢?

到目前为止我得到了这段代码

tmp = os.environ.get("TMP")
def remc(tmp):
        try:
            if tmp:
                for f in os.listdir(tmp):
                    ntmp = os.path.join(tmp,f)
                    os.remove(ntmp)
            else:
                os.removedir(ntmp)
        except OSError as err:
            print err

但我在那里手动创建的文件不会被删除,如果使用的某个文件程序不会继续删除其他文件(我应该看到每个文件的错误)

2 个答案:

答案 0 :(得分:0)

我还没有找到获取默认临时目录的伟大的方式,但我已经看到了应该尝试的平台相关搜索列表。在Windows上,对于活动用户,“TMP”环境变量似乎具有路径。

鉴于此,这样的事情可能适合您的需求:

import os
tmp = os.environ.get("TMP")
if tmp:
    for f in os.listdir(tmp):
        name = os.path.join(tmp, f)
        try:
            if os.path.isfile(name):
                os.remove(name)
            else:
                #os.rmdir(name) # to only remove empty directories.
                # To remove the directory and all of its contents.
                os.removedirs(name)
        except OSError as e:
            # Specific exception handling could be done based on the 'errno'.
            pass # skip files that are in use on Windows or otherwise cannot be removed.

<强>参考

答案 1 :(得分:0)

tmp = os.environ.get("TMP")
def remc(tmp):
    if tmp:
        for f in os.listdir(tmp):
            ntmp = os.path.join(tmp,f)
            try:
                os.remove(ntmp)
            except OSError as errf:
                print errf

    else:
        try:
            os.removedir(ntmp)
        except OSError as errd:
            print errd

非常感谢凯文! :d