如何删除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
但我在那里手动创建的文件不会被删除,如果使用的某个文件程序不会继续删除其他文件(我应该看到每个文件的错误)
答案 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.
<强>参考强>
errno
documentation winerror
答案 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