Python如何管理相对路径
我不知道如何在Python中找到相对路径。代码只允许我使用绝对路径 我想要什么 它迫使我做什么Python如何管理相对路径,python,Python,我不知道如何在Python中找到相对路径。代码只允许我使用绝对路径 我想要什么 它迫使我做什么 config = configparser.ConfigParser() config.read('C:\\Users\\***confendential***\\OneDrive\\文档\\Python\\Chinese for practice\\ChineseWords\\app\\main.ini',) print(config.sections()) FilePaths = config[
config = configparser.ConfigParser()
config.read('C:\\Users\\***confendential***\\OneDrive\\文档\\Python\\Chinese for practice\\ChineseWords\\app\\main.ini',)
print(config.sections())
FilePaths = config['data']
DictionaryFilePath = FilePaths['DictionaryFilePath']
print(DictionaryFilePath)
有什么想法吗
是Onedrive吗?我想就是Onedrive。它迫使你使用一条狭隘的前进道路已经有一些答案涵盖了这一点 总结一下,如果你这么做的话
config.read('..\\main.ini',)
然后,您的程序需要一个文件,main.ini
位于您从何处执行程序的父目录中
通常需要指定一个相对于正在执行的文件位置的路径
您可以使用获取该文件的路径,然后使用os.path
模块对其进行操作(请参阅)
在本例中,假设您的main.ini
位于正在运行的脚本的父目录中,您可以执行以下操作:
inifile = os.path.join(os.path.dirname(os.path.dirname(__file__)), "main.ini")
config.read(inifile)
在您的案例中需要注意的另一件事是,实际检查ini文件是否已加载可能很有用。如果找不到该文件,它将返回一个空对象,因此您可以对此进行检查并打印消息或错误
希望这是有帮助的。其他链接答案提供了关于这些想法的一些更有用的信息。您从哪里调用此脚本?Python的相对路径基于调用可执行文件的位置。您正在运行什么命令来运行脚本?第一个脚本生成了什么输出?向ConfigParser对象传递无效路径将返回空对象。因此,如果未找到main.ini
,那么调用config['data']
应该会引发一个KeyError。@wstk您是对的,它确实会引发一个KeyError。有没有脚本可以帮助我找到相对路径?谢谢正如@C.Nivs所提到的,路径是相对于调用可执行文件的路径来解析的。因此,在您的示例中,无论从何处运行脚本,它都希望父目录中有一个文件(main.ini
)。我将添加一个关于如何解析相对于脚本位置的路径的答案。
inifile = os.path.join(os.path.dirname(os.path.dirname(__file__)), "main.ini")
config.read(inifile)