Python os.path.exists问题与变量

时间:2014-01-08 21:35:57

标签: python arcgis arcpy

我正在尝试运行一个搜索表的python模块,并从该表中的某些celss中提取数据(使用变量“LayerExpression”)。在某些情况下,该单元格包含另一个python文件的路径名称(例如,表格单元格中可能包含以下路径名称:'C:\ Users \ me \ Documents \ Working \ PyFiles \ Example.py')。我的python程序将每个单元格值分配给变量“CommentsExpression”,然后检查变量以查看它是否确实引用了现有文件的路径名(使用os.path.exists())。如果是这种情况,那么我的程序会将该其他python文件作为模块导入,并从中提取特定变量 - 在本例中为变量“expression”。

我的问题是,当我从表中提取路径名时,将其分配给变量“CommentsExpression”并通过os.path.exists()运行它,它会一直显示为false - 即使文件也是如此路径确实存在。我试过使用r'[路径名]',但没有运气作为变量。我的代码示例如下。

import arcpy, os, re, array, sys, glob
from arcpy import env

CommentsExpression = ''
LayerExpression = '"Database - Fish Species"'
rows = arcpy.SearchCursor(r'C:\Users\me\Documents\Working\PyFiles\Master_Table.py')
for row in rows:
LayerField = row.getValue("Layer")
if LayerField == LayerExpression:
    CommentsExpression = CommentsExpression = row.getValue(str("Comments"))
    print os.path.exists(CommentsExpression)
    CommentsExpressionOutput = os.path.basename(CommentsExpression)
    CommentsExpressionOutput = CommentsExpressionOutput.split('.')
    CommentsExpressionOutput = str(CommentsExpressionOutput[0])
    if os.path.exists(CommentsExpression) == True:
        print 'True'
        pyFile = __import__(CommentsExpressionOutput)
        print pyFile.codeblock
    else:
        print 'False'

1 个答案:

答案 0 :(得分:0)

感谢praveen帮助我。如果我从

更改了以下行
if os.path.exists(CommentsExpression) == True:'

改为

if os.path.exists(os.path.abspath(CommentsExpression)) == True
它似乎有效。