BUG记录Python中的相对文件路径

Posted sin(豪)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUG记录Python中的相对文件路径相关的知识,希望对你有一定的参考价值。

目录

1. 问题描述

相对文件路径是个坑。我们的文件树结构如下

root
--utils
	--test.py
	--tmp(文件夹)
--main
	--main.py

test.py代码如下

import os

def find_path():
    path = os.path.join("tmp")
    print(os.path.isdir(path))

if __name__ == '__main__':
    find_path()
# 执行test.py输出结果:
True

main.py代码为:

from utils.test import find_path

if __name__ == '__main__':
    find_path()
# 执行main.py输出结果:
False

2. 实验现象

2.1 改变文件结构

如果我们把文件结构变为:

root
--utils
	--test.py
--main
	--main.py
	--tmp(文件夹)

test.py和main.py代码不动,执行结果为:

# 执行test.py输出结果:
False
# 执行main.py输出结果:
True

因此,我们得出结论:
相对路径是指相对于当前运行代码的路径。

2.2 用命令行运行代码

我们在命令行下运行main.py,此时需要在main.py中加入一行代码,main.py变为:

# main.py
import sys
sys.path.append("E:/杂项/root/")  # 添加包搜索路径
from utils.test import find_path


if __name__ == '__main__':
    find_path()

我们在root目录下运行命令:

python main/main.py

运行结果如下:

如果我们进入main目录,然后运行main.py:

因此我们得出结论:
相对路径是指相对与当前所在目录的路径。

END:)

这里说些题外话,最近更新博客频率降低,有几方面的原因:
一是,最近在学网课,打代码,补充些基础,所以没太多时间写总结(倒是写了一些笔记);
二是,深感自己能力不足,看以前的博客觉得很多知识理解很浅薄,希望再多积累。

以上是关于BUG记录Python中的相对文件路径的主要内容,如果未能解决你的问题,请参考以下文章

kotlin关于读取文件路径问题

[vsCode实践] 实践记录

Python 文件路径

Python中的绝对路径和相对路径

从 Python 中的相对路径导入

如何解析python中的相对路径?