我正在使用 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 ###
我读了这篇文章,你可以看到我已经尝试了不止一种方法来获得正确的路径,但由于某种原因我还没有发现,结果路径似乎会根据最后一行是否被注释或不是。
如果我运行代码并将 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
然后分配失败,因为第二个文件的路径不正确。为什么第二条路径重复相对路径?如果我取消注释赋值语句,为什么打印的字符串会改变?为什么第一个文件路径不受影响?