我正在尝试删除文件。我检查日期并删除它是否比我想要的旧。我注意到一个 .zip 文件没有被删除。它是只读的,所以在一些测试代码中,我使用了 os.chmod(path, stat.S_IWRITE) 然后 os.remove(path) 并且它起作用了。我将此代码放入我的主代码并得到错误。我在两者中都导入了 os 和 stat 模块。
下面是有效的测试代码,但是当我把它放到更大的代码中时,我得到了错误,完整的代码也只是一个 def:
AttributeError:“nt.stat_result”对象没有属性“S_IWRITE”
我检查了 dpath 和 dayscount 是否通过了路径和天数。
import os, stat
def del_file(dpath, dayscount):
if dayscount > 10:
if dpath[-4:]== ".zip":
os.chmod(dpath,stat.S_IWRITE)
os.remove(dpath)
else:
os.remove(dpath)
else:
print "File is Good"
dpath = "C:\Workspace\Test_Data.zip"
dayscount = 15
del_file(dpath, dayscount)
阅读此处后,我找到了一个链接:此页面上的代码,其中显示了一些导入模块的示例。答案说要在函数中导入模块。我在我的主要代码上尝试了这个并且它有效。
主要代码在代码顶部导入os和stat,但是这个函数好像没有看到。我不确定为什么。当我将它导入模块时,它会看到它。因此,当放入主代码时,我必须将导入添加到模块中,见下文。
import os, stat
def test_date():
Code for this function
def get_month():
Code for this function
def del_file(dpath, dayscount):
import os, stat
print dpath
print dayscount
if dayscount > 10:
if dpath[-4:]== ".zip":
os.chmod(dpath,stat.S_IWRITE)
#os.remove(dpath)
else:
os.remove(dpath)
else:
print "File is Good"
dpath = "C:\Workspace\Test_Data.zip"
dayscount = 13
del_file(dpath, dayscount)