目录

目录

一、相对路径(相对执行文件)

二、绝对路径(相对执行文件)

三、硬编码绝对路径

四、相对路径(相对方法文件)

五、最佳实践


一、相对路径(相对执行文件)

这段代码,找的是main方法(执行文件)所在文件的同级下的picture文件夹的相对路径

import os


def list_dir():
    folder_path = "picture"
    if len(os.listdir(folder_path)) > 100:
        print("数量充足")
    else:
        print(f"数量不足:{len(os.listdir(folder_path))}")


if __name__ == '__main__':
    list_dir()

二、绝对路径(相对执行文件)

这段代码,找的是main方法(执行文件)所在文件的同级下的picture文件夹的绝对路径

import os


def list_dir():
    folder_path = os.path.abspath("picture")
    if len(os.listdir(folder_path)) > 100:
        print("数量充足")
    else:
        print(f"数量不足:{len(os.listdir(folder_path))}")


if __name__ == '__main__':
    list_dir()

三、硬编码绝对路径

这段代码,找的是写死的路径,跟执行文件无关。

import os


def list_dir():
    folder_path = r"D:\workspacepython\ocr\f\common\picture"
    if len(os.listdir(folder_path)) > 100:
        print("数量充足")
    else:
        print(f"数量不足:{len(os.listdir(folder_path))}")


if __name__ == '__main__':
    list_dir()

四、相对路径(相对方法文件)

很多时候,我们并不知道绝对路径,只知道相对于方法所在文件的相对路径。就有了一下写法。

import os


def list_dir():
    # 获取脚本文件所在的目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 构建目标文件夹的绝对路径
    folder_path = os.path.join(script_dir, "picture")

    if len(os.listdir(folder_path)) > 100:
        print("数量充足")
    else:
        print(f"数量不足:{len(os.listdir(folder_path))}")


if __name__ == '__main__':
    list_dir()

五、最佳实践

构建文件夹的时候,文件夹中新建一个__init__.py的空文件。或者使用Pycharm新建文件夹的时候采用python文件夹。

然后将以下内容复制进去:

import os

# 获取当前文件的绝对路径
current_file_path = os.path.abspath(__file__)
# 获取当前文件所在的目录
current_directory = os.path.dirname(current_file_path)
# 获取当前文件所在目录的父级目录
parent_directory = os.path.dirname(current_directory)
# 获取当前文件所在目录的爷爷级别目录
grandparent_directory = os.path.dirname(parent_directory)
# 获取当前文件所在目录的曾祖父级别目录
great_grandparent_directory = os.path.dirname(grandparent_directory)
# 路径拼接
# os.path.join(current_directory, "xxx")

我们在次文件夹下的文件方法中引用文件夹下的其他文件的时候,采用路径拼接的方式,这样无论在哪里调用,引用的文件都是固定的。比如:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐