2012-07-01 80 views
1

簡化問題的描述,我有:在Python(或Mac OS):兩個不同的文件識別爲同一文件,並得到重新編寫

目錄和文件結構:

./top.py 
./Task/Task.py (was deleted and then renamed as:) 
./Task/task.py 

top.py進口task.py 。但後來當我運行top.py,我看到task.py自動更改爲Task.py

這是怎麼發生的?

(我用mvim在Mac OS 10.6的編輯。)

+3

的Mac OS X是_not_傳統的UNIX。默認情況下,許多Mac OS X文件系統是使用不區分大小寫(保留大小寫)文件系統創建的。這可能會影響您的問題。 –

+0

謝謝,改了標題 – lukmac

回答

3

的Mac OS X的默認文件系統是不區分大小寫,但保留大小寫,如查爾斯說(此文件系統被稱爲Mac OS擴展,或HFS Plus,並且默認配置爲不區分大小寫)。所以,實際上,./Task/Task.py和 ./Task/task.py是相同文件(你可以用open('task.py')讀Task.py,在Python,例如),但所用的名稱在創建文件時與原始案例保持一致。

如果您確實需要區分Task.py和task.py,則可能需要創建一個區分大小寫的磁盤映像並從中運行(此問題在網上爲discussed)。

1

在OSX文件的情況下將被保留到任何該文件最初創建的。因此mv Task.py task.py將不起作用。如果你想重命名文件,你通常需要首先將其重命名爲其他內容。你可以在命令行做到這一點:

cd Task 
mv Task.py temp.py 
mv temp.py task.py 

P.S.如果你的文件在git版本控制下,它會變得更加複雜。

相關問題