os.walk找到文件路径问题(Python 2.7)

时间:2013-04-13 17:08:55

标签: python os.walk

我刚刚开始使用python 2.7并使用以下代码来确定文件的路径:

import os, fnmatch

#find the location of sunnyexplorer.exe
def find_files(directory, pattern):
    for root, dirs, files in os.walk(directory):
        for basename in files:
            if fnmatch.fnmatch(basename, pattern):
                filename = os.path.join(root, basename)
                yield filename

for filename in find_files('c:\users','*.sx2'): 
    print ('Found Sunny Explorer data in:', filename)
在尝试使用路径并注意到错误之前,似乎工作正常。该程序将路径报告为:

c:\users\woody\Documents\SMA\Sunny Explorer

而正确的路径是:

c:\users\woody\My Documents\SMA\Sunny Explorer

1 个答案:

答案 0 :(得分:2)

自Vista以来,所有版本的MS Windows都默认将用户的文档存储在C:\Users\%username%\Documents中。

但是,它们还包含NTFS junction point C:\Users\%username%\My Documents,它指向同一位置以实现向后兼容。

根据我的理解,问题是您不能使用标准POSIX调用的连接点,因此如果没有某些特定于Windows的扩展模块,Python将无法使用它们。

另请参阅superuser.com上的this question