【发布时间】:2010-11-01 22:00:56
【问题描述】:
当我在 OS X 10.6.4 下的 Mac 上从主目录调用 os.getcwd() 时,路径将转换为小写。我明白了
/users/我的用户名
而不是
/用户/我的用户名
在另一台 Mac 上,我得到了正确的大写字符串。我该如何配置?是否有(隐藏的)Python 设置?
询问原因: 在 OS X 上,所有用户目录都在“/Users”中。这总是大写。使用 Mercurial 时,它有时会与我当前目录的这种奇怪且不正确的规范化混淆。
回复建议的解决方案:
(1) DiskUtil 说我的驱动器的格式为“Mac OS Extended (Journaled)”。一个月前我买了我的电脑,它仍然是原始驱动器,从未重新格式化。
(2)另一个python控制台会话日志:
$>>> os.system('pwd')
/用户/klaas
0
$>>> os.getcwd()"
'/users/klaas'
$>>> os.path.normcase('/Users/klaas')
'/Users/klaas'
$>>> os.chdir('/UserS/klaas')
$>>> os.getcwd()
'/users/klaas'
$>>> os.chdir('/UserS/klaas')
$>>> os.getcwd()
'/users/klaas'
更新 2:
感谢所有回复。我在 Objective-C 中创建了一个测试用例,它具有相同的小写文件夹名称:
NSFileManager *filemgr;
NSString *currentpath;
filemgr = [NSFileManager defaultManager];
currentpath = [filemgr currentDirectoryPath];
NSLog (@"Current directory is %@", currentpath);
【问题讨论】:
-
您是否安装了另一个python(通过
macports或fink)?当您从控制台启动 Python 时,它会报告什么版本?我的系统Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) - [GCC 4.2.1 (Apple Inc. build 5646)] on darwin工作正常... -
主机的操作系统版本是否相同并使用相同的文件系统?
-
尝试使用“dtruss”运行带有 os.getcwd 的脚本。至少您可以看到操作系统为该目录返回的内容。
-
Python 在 darwin 上报告 Python 2.7 (r27:82508, Jul 3 2010, 20:17:05) [GCC 4.0.1 (Apple Inc. build 5493)]
-
所以你知道这不是 Python的问题。操作系统本身返回一个小写的 /users/klass。