python关于文件路径问题

目录

目录

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

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

三、硬编码绝对路径

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

五、最佳实践


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

这段代码,找的是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")

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

Python中,获取文件路径可以通过多种方式,这里介绍几种常见的方法: 1. 使用`input()`函数直接从用户那里获取路径: ```python file_path = input("请输入文件路径:") ``` 2. 使用`os.path`模块中的`expanduser()`函数来处理用户主目录的相对路径,使其变为绝对路径: ```python import os.path file_path = os.path.expanduser('~/Desktop/myfile.txt') ``` 3. 使用`pathlib`模块的`Path`类来处理文件路径。`pathlib`提供了面向对象的方式来处理文件系统路径: ```python from pathlib import Path file_path = Path.home() / 'Desktop' / 'myfile.txt' ``` 4. 使用命令行参数获取路径,例如使用`argparse`模块解析命令行参数: ```python import argparse parser = argparse.ArgumentParser(description="获取文件路径示例") parser.add_argument('file_path', type=str, help='请输入文件路径') args = parser.parse_args() file_path = args.file_path ``` 5. 如果在编写一个图形用户界面(GUI)程序,可以使用GUI组件如Tkinter的文件对话框来让用户选择文件: ```python import tkinter as tk from tkinter import filedialog root = tk.Tk() root.withdraw() # 隐藏主窗口 file_path = filedialog.askopenfilename(title="选择文件", filetypes=[("所有文件", "*.*"), ("文本文件", "*.txt")]) print("您选择的文件是:", file_path) ``` 使用以上方法之一即可获取用户输入的文件路径,具体选择哪一种方法取决于你的应用程序需要和上下文环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文子阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值