2

我正在尝试删除文件。我检查日期并删除它是否比我想要的旧。我注意到一个 .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)
4

1 回答 1

1

stat您正在代码中的某处设置一个具有名称的变量(os.stat调用的结果)。这个变量使统计模块黯然失色。

搜索stat =变量并将其重命名为另一个名称,例如stat_result.

于 2012-06-21T16:02:16.800 回答