在Mac上有没有类似Python的os.remove()的函数?

2 投票
3 回答
2602 浏览
提问于 2025-04-16 22:27

目前我有一些代码用来删除我程序创建的临时文件:

# Delete the generated files
exts = [".lsys", ".py", ".pyc"]
for ext in exts:
    os.remove("{0}{1}{2}".format(self.grammarDir, filename, ext))

现在我想把这个应用程序移植到Mac上。查看了Python 2.7的文档,里面特别提到:

删除(移除)指定路径的文件。如果路径是一个文件夹,会引发OSError;要删除文件夹请看下面的rmdir()。这和下面文档中的unlink()函数是一样的。在Windows上,如果试图删除一个正在使用的文件,会引发异常;而在Unix系统中,目录条目会被删除,但文件占用的存储空间在原文件不再被使用之前不会被释放。

Availability: Unix, Windows.

那么在Mac上有没有和os.remove()等效的函数,还是我只能用类似的方式呢?

os.system("rm {0}{1}{2}".format(self.grammarDir, filename, ext))

我需要和Mac兼容,同时如果能保持和Ubuntu的兼容那就更好了(但这不是绝对必要的)。

编辑:

好吧,现在我觉得自己有点傻。原来我在这段代码之前有一个错误的调用,导致删除代码没有被执行。我误诊了我的错误,以为它是静默失败。

3 个回答

4

os.remove 这个功能在Windows和Unix系统上都可以用。Mac OSX也算是Unix系统,所以你可以在Mac OSX上使用 os.remove

根据你链接的文档

如果没有特别说明,所有标注为“可用性:Unix”的功能在Mac OS X上都是支持的,因为它是基于Unix核心的。

5

在这个上下文中,Unix也指的是Mac和Linux。可能所有可以用来安装Python的类Unix/符合POSIX标准的系统都包括在内。

7

Mac OS X也是一种Unix系统。从链接的文档的开头可以看到:

如果没有特别说明,所有标记为“可用性:Unix”的功能在Mac OS X上都是支持的,因为它是基于Unix核心构建的。

撰写回答