为什么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 (将#修改为@)