2011-07-28 84 views
1

目前,我有一些代碼刪除我的程序創建一些臨時文件:在Mac上是否有與Python的os.remove()相當的功能?

# 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的documentation,它特別說:

刪除(刪除)文件路徑。如果path是一個目錄,則引發OSError爲 ;請參閱下面的rmdir()以刪除目錄。這與下面記錄的unlink()函數 相同。在Windows上,嘗試 刪除正在使用的文件會引發異常;在 Unix上,目錄條目被刪除,但分配給 文件的存儲不可用,直到原始文件不再使用 。

Availability: Unix, Windows. 

是否有一個相當於os.remove()的Mac或我使用這樣的卡?

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

我需要兼容Mac和保持與Ubuntu的兼容性將是一個巨大的獎金(但不是絕對必要)。

編輯:

好了,現在我覺得愚蠢。原來我在這部分代碼之上有一個破壞的調用,所以沒有達到刪除代碼。誤解我的錯誤在哪裏,認爲它是在默默地失敗。

+3

Mac OS是一個Unix。 os.remove應該工作。 – utdemir

+1

現代(OSX)mac基本上是unix,所以我自然會認爲它也可以在mac下使用。你有沒有嘗試過,它不起作用;或者你的意思是pre-OSX mac? – delnan

+0

你有試過嗎? OS X基於Linux。 – FishBasketGordo

回答

6

Mac OS X也是一個Unix。從鏈接documentation的頂部:

如果不單獨指出的是,權利要求的所有功能「可用性:Unix的」 支持在Mac OS X,它建立在Unix核心。

+1

我完全錯過了。原來我在這部分代碼之上有一個破壞的調用,所以沒有達到刪除代碼。錯誤地診斷了我的錯誤,認爲它失敗了。 – thegrinner

4

在這種情況下,Unix也意味着Mac和Linux。可能是所有可以構建Python的Unix-like/POSIX兼容系統。

+1

誰在地球上投了這個票? +1來補償! –

3

os.remove在Windows和Unix上可用。 Max OSX算作Unix,因此您可以在Mac OSX上使用os.remove

documentation你鏈接到:

如果不單獨指出的是,權利要求的所有功能「可用性:Unix的」支持在Mac OS X,它建立在Unix核心。

相關問題