如何在python中作为参数传递时检查目录是否存在?

时间:2018-09-06 11:28:04

标签: python

我试图将目录作为参数传递并检查其存在-

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)行中的语法错误:

3 个答案:

答案 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