Python获取脚本所在目录的正确方法

当我们编写Python程序时,有时需要获取当前执行文件所在的目录。获取程序所在目录在处理文件读取、文件写入、文件路径转换等场景下都是非常必要的。Python提供了多种方式获取执行文件所在目录,但是有些方式并不正确,因此在本文中将为大家介绍Python获取脚本所在目录的正确方法。

方法一:使用os.path

Python中的os.path模块可以用于操作文件路径字符串,包括获取路径、文件名、文件扩展名等。其中,os.path.abspath()函数可以获得程序所在的绝对路径,os.path.dirname()函数可以获取程序所在目录的路径。利用这两个函数,就可以得到程序所在目录。示例代码如下:

import os
dir_path = os.path.dirname(os.path.abspath(__file__))
print(dir_path)

使用__file__获取当前文件的路径,这里的路径是相对路径,调用os.path.abspath()函数将其转换为绝对路径,并使用os.path.dirname()函数获取所在目录的路径。

如果当前文件执行的时候,是从其他目录执行的,那么获取的结果并不是我们所期望的程序所在目录。这时我们需要根据当前工作目录来计算程序所在目录。示例代码如下:

import os
dir_path = os.path.dirname(os.path.abspath(os.path.join(os.getcwd(), __file__)))
print(dir_path)

先使用os.getcwd()获取当前工作目录,再使用os.path.join()函数将该工作目录和当前文件的相对路径合并为绝对路径,并调用os.path.dirname()函数获取所在目录的路径。

方法二:使用Pathlib模块

Python3.4开始引入了Pathlib模块,该模块提供了连接路径字符串、判断路径是否存在、读取文件等功能。Pathlib模块中的Path类可以代替os.path模块中的函数,同时使用起来更加简洁明了。示例代码如下:

from pathlib import Path
dir_path = Path(__file__).resolve().parent
print(dir_path)

使用Path(file)创建一个Path实例,__file__表示当前文件的相对路径。调用resolve()函数得到该文件的绝对路径,再使用parent属性获取所在目录的路径。

总结

在Python中,获取程序所在目录有很多种方式,但并非每种方式都是正确的。以上介绍的两种方法都是可靠的获取脚本所在目录的方式,在实际应用中,你可以根据自己的需要来选择。但通常情况下,使用os.path或Pathlib模块是获取程序所在目录的最佳实践。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python获取脚本所在目录的正确方法 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python 使用 requests 模块发送http请求 的方法

    在Python中,requests模块是一个常用的HTTP客户端库,可以用于发送HTTP请求和处理HTTP响应。requests模块提供了多个函数,用于发送不同类型的HTTP请求。以下是详细讲解Python使用requests模块发送HTTP请求的方法的攻略,包含两个例。 发送GET请求 发送GET请求是最常见的HTTP请求之一。可以使用requests模块…

    python 2023年5月15日
    00
  • python+django加载静态网页模板解析

    在本攻略中,我们将讨论如何在Python和Django中加载静态网页模板并进行解析。我们将介绍如何使用Django的模板系统来加载和解析静态网页模板。 以下是完整攻略包括两个示例。 步骤1:创建Django项目 在开始之前,我们需要创建一个Django项目。我们可以按照以下步骤来创建一个Django项目: 安装Django。 pip install djan…

    python 2023年5月15日
    00
  • Python创建文件夹与文件的快捷方法

    让我们来讲解一下“Python创建文件夹与文件的快捷方法”的完整攻略: 1. 创建文件夹的方法 Python中创建文件夹的方法有多种,包括使用os模块、使用pathlib模块等。下面我将介绍其中两种方法。 (1)使用os模块 使用os模块创建文件夹的方法,代码示例如下: import os # 设置要创建的文件夹名称 folder_name = "…

    python 2023年6月2日
    00
  • selenium3+python3环境搭建教程图解

    本文将详细讲解如何搭建selenium3+python3环境,并结合两个示例进行说明。 环境要求 在开始搭建之前,请确保您已经安装以下环境: Python3(建议使用3.6以上版本) pip3(Python包管理器) Chrome浏览器(建议使用最新版本) Chrome Driver(用于控制Chrome浏览器,需要和Chrome浏览器版本对应) 安装sel…

    python 2023年5月19日
    00
  • Python运行的17个时新手常见错误小结

    Python运行的17个时新手常见错误小结 在Python编程过程中,新手常常会遇到一些常见的错误。这些错误可能会导致程序无法正常运行,甚至会导致程序崩溃。本文将介绍Python运行的17个时新手常见错误,并提供一些示例说明。 1. 语法错误 语法错误是最常见的错误之一。它通常是由于代码中的拼写错误、少括号或引号等语法错误导致的。例如,下面的代码中缺少了一个…

    python 2023年5月13日
    00
  • python 3.8.3 安装配置图文教程

    Python3.8.3安装配置图文教程 本文将介绍Python3.8.3在Windows系统上的安装和配置过程。 1. 下载Python3.8.3安装包 访问Python官网(https://www.python.org/downloads/)下载Python3.8.3的安装包(根据自己的系统版本选择相应的安装包)。例如,对于64位Windows系统,可以选…

    python 2023年5月13日
    00
  • Python开源自动化工具Playwright安装及介绍使用

    Python开源自动化工具Playwright是一个功能强大、易于使用的自动化测试工具。它允许开发人员使用Python编写端到端测试,并且可以与多种浏览器和操作系统进行交互。 以下是完整的攻略步骤: 1. 安装Playwright 安装Playwright需要使用pip命令: pip install playwright 此外,还需要在本地安装要进行自动化测…

    python 2023年5月19日
    00
  • Python基于pygame实现的弹力球效果(附源码)

    Python基于pygame实现的弹力球效果攻略 简介 此次攻略主要介绍通过基于pygame实现弹力球效果的过程,可以让大家对pygame进行更深入的了解,同时也可以帮助大家更深入的学习Python游戏开发相关的知识点。 步骤 首先,需要安装pygame模块,可以通过以下命令进行安装(需要确保已安装pip工具): pip install pygame 在安装…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部