我有一个配置从正在使用阅读一些值文件configparser
,其中之一是PROJECT_PATH
在配置读发生在一个单独的Python文件被导入到main.py
的目标是要列出所有的目录存在于PROJECT_PATH
要做到这一点,我使用os.listdir()
会产生错误。
>>> os.listdir(PROJECT_PATH)
FileNotFoundError: [Errno 2] No such file or directory: '"/home/user/projects/"'
但是,如果我通过path
硬编码,例如:os.listdir("/home/user/projects")
则它可以正常工作并显示目录。
我也尝试使用os.path.exists()
并且发生类似问题:
>>> os.path.exists(PROJECT_PATH)
False
>>> os.path.exists("/home/user/projects")
True
现在,更有趣的事情是:
当我创建一个局部变量sayprj_path
并在其中存储路径值时,它就起作用了。
>>> prj_path = "/home/user/projects/"
>>> os.path.exists(prj_path)
True
但是,如果我将导入的变量存储PROJECT_PATH
到局部变量中并使用它,那么它将不起作用。
我还尝试了其他方法,例如再次进行类型转换str(PROJECT_PATH)
,这也不起作用。
基本上,使用进口变量的任何操作
PROJECT_PATH
不工作,但只使用局部变量,和/或硬编码字符串的工作!
我也尝试过使用pathlib
模块从字符串生成路径:pathlib.Path(PROJECT_PATH)
这也不起作用。
传递给上述任何函数时,使用导入的字符串的任何操作均不起作用。
看起来双引号是从配置文件加载的配置变量的值的一部分。错误消息建议这样做:
FileNotFoundError: [Errno 2] No such file or directory: '"/home/user/projects/"'
从配置文件中的路径值中删除引号,或在使用前将其删除。我希望使用前者,因为这需要较少的纠正代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句