Python – validationinput是真实的文件夹,而不是根

我正在用Python编写一个脚本。 用户必须input要运行的脚本文件夹。 有一些文件的复制和移动,并在某个点上删除一个文件夹。 所以,在任何情况下我都不希望这个脚本在根文件夹上运行。 (或者当前或父母)

所以我需要validation这一点。 但是,我怎么做,因为“/”“./”“。”“..”等等,作为input都是完全有效的和现有的文件夹使用os.path.isdir()。

我应该手动检查这些系统文件夹符号的input。 还是有更好的方法(现有的function也许?)来检查input是否是一个真正的现有文件夹,而不是一个系统或像(根,当前,父母等符号文件夹…)

你想通过使其绝对正常化你的路径。 您可能也想要消除符号链接:

import os.path normalized = os.path.realpath(os.path.absolute(path)) if normalized == '/': raise ValueError("Can't use root as a destination") 

使路径绝对消除任何当前或父路径引用,以及任何加倍的分隔符。

要么在路径中禁止“..”,要么使用abspath来获得真正的路径。