微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Abspath从同一目录返回不一致的文件路径?

如何解决为什么Abspath从同一目录返回不一致的文件路径?

我正在使用os.walk()遍历文件夹并获取某些文档的标准路径以进行处理。

def folderLoop():
    for path,dirs,files in os.walk(inFolder):
        for filename in files:
            if fnmatch.fnmatch(filename,'*.mxd'):
                #mxdFilePath = os.path.abspath(os.path.join(path,filename))
                mxdFilePath1 = os.path.normpath(os.path.join(path,filename))
                mxdFilePath = os.path.join(os.getcwd(),mxdFilePath1)
                print("\tRe-source: " + mxdFilePath)
                #mxd = arcpy.mapping.MapDocument(r'{}'.format(mxdFilePath))
                ### Process File ###

我读了this post,您可以看到我尝试了不止一种方法获取正确的路径,但是由于某种原因,我尚未发现,结果路径似乎会根据是否改变而改变最后一行是否带有注释。

如果运行代码时注释掉了mxd分配,如上所示,则所有打印的文件路径看起来都是正确的:

Re-source: C:\Users\CoryDavis\desktop\test_data\IL\Bond_IL\bond_il.mxd
Re-source: C:\Users\CoryDavis\desktop\test_data\IL\Bond_IL\bond_il_cmp.mxd
Re-source: C:\Users\CoryDavis\desktop\test_data\IL\Bond_IL\bond_il_detailed_outline.mxd
...

但是,如果取消注释,这就是我看到的内容

Re-source: C:\Users\CoryDavis\desktop\test_data\IL\Bond_IL\bond_il.mxd
Re-source: C:\Users\CoryDavis\desktop\test_data\IL\Bond_IL\test_data\IL\Bond_IL\bond_il_cmp.mxd

然后,分配失败,因为第二个文件的路径不正确。为什么第二条路径重复相对路径?如果取消注释赋值语句,为什么打印的字符串会更改?为什么第一个文件路径不受影响?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。