问题描述
我正在使用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 (将#修改为@)