我试图将目录作为参数传递并检查其存在-
def validatePath(DirectoryName):
pathtodata="/temp/project/data/"
if os.path.exists('pathtodata'DirectoryName):
return True
return False
parser = argparse.ArgumentParser()
parser.add_argument("DirectoryName", nargs='?', help="Input folder Name", type=str)
args = parser.parse_args()
myDir = args.DirectoryName
validatePath(myDir)
错误:os.path.exists('pathtodata'DirectoryName)行中的语法错误:
答案 0 :(得分:2)
在Python中,组合路径的方式不是'pathtodata'DirectoryName
,而是os.path.join(pathtodata, DirectoryName)
。
答案 1 :(得分:2)
您应该使用os.path.join()
:
您的代码应如下所示:
def validatePath(DirectoryName):
pathtodata="/temp/project/data/"
pathtodir = os.path.join(parthtodata, DirectoryName)
if os.path.exists(pathtodir):
return True
return False
parser = argparse.ArgumentParser()
parser.add_argument("DirectoryName", nargs='?', help="Input folder Name", type=str)
args = parser.parse_args()
myDir = args.DirectoryName
validatePath(myDir):
答案 2 :(得分:1)
os.path.join
根据您的操作系统定界符加入路径,而os.path.exists
检查路径是否存在。
os.path.exists(os.path.join(pathtodata, DirectoryName))
导致语法错误的原因是
'pathtodata'DirectoryName
无论上下文如何,这都是无效的python语法。
os.path文档中的更多详细信息-https://docs.python.org/2/library/os.path.html