python获取程序执行文件路径的方法(推荐)

yizhihongxing

获取程序执行文件路径是Python开发中很常见的需求。本文将介绍2种常用的Python获取程序执行文件路径的方法。

方法一:使用os模块的path属性

下面是一段使用os模块获取程序执行文件路径的Python代码:

import os

# 获取当前运行的py文件的文件名
print(__file__)

# 获取当前运行的py文件所在的目录
print(os.path.dirname(os.path.abspath(__file__)))

首先,Python内置了一个特殊变量__file__,获取当前运行的py文件的文件名。然后,使用os.path模块的abspath()方法将文件名转换成绝对路径,再使用os.path.dirname()方法取出文件所在的目录即可。

方法二:使用sys模块的argv属性

下面是一段使用sys模块获取程序执行文件路径的Python代码:

import sys
import os

# 获取程序执行的绝对路径
path = os.path.abspath(sys.argv[0])
print(path)

# 获取程序执行的目录
dir_path = os.path.dirname(path)
print(dir_path)

sys.argv是一个包含命令行参数的列表。一般情况下,列表中第一个元素是脚本文件名,因此,这里的sys.argv[0]就是程序的绝对路径。使用os.path.abspath()方法将其转换成绝对路径,再使用os.path.dirname()方法取出其所在目录即可。

示例说明

示例1

现在有一个名叫test.py的Python脚本,它在D:\python_project目录下。

# test.py文件的内容如下
import os

# 获取当前运行的py文件的文件名
print(__file__)

# 获取当前运行的py文件所在的目录
print(os.path.dirname(os.path.abspath(__file__))))

执行该脚本,会得到以下输出结果:

D:\python_project\test.py
D:\python_project

示例2

设在/var/www/cgi-bin/目录下有一个名叫test.py的python脚本。

# test.py文件的内容如下
import sys
import os

# 获取程序执行的绝对路径
path = os.path.abspath(sys.argv[0])
print(path)

# 获取程序执行的目录
dir_path = os.path.dirname(path)
print(dir_path)

执行该脚本,会得到以下输出结果:

/var/www/cgi-bin/test.py
/var/www/cgi-bin

通过上述两个示例,我们可以看出,无论在什么系统环境下,Python获取程序执行文件路径的方法都是可行的。当然,也需要根据实际情况选择适合自己的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python获取程序执行文件路径的方法(推荐) - Python技术站

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

相关文章

  • 详解Python迭代和迭代器

    详解Python迭代和迭代器 Python中的迭代是指重复执行一系列指令的过程。Python通过迭代器来实现迭代。迭代器是一个可以遍历元素的对象,它能被next()函数调用并不断返回下一个值,直到发生StopIteration异常。 迭代器的实现方式 在Python中,我们可以通过定义一个类和实现__iter__()和__next__()方法来创建一个迭代器…

    python 2023年6月6日
    00
  • Python之dict(或对象)与json之间的互相转化实例

    当我们需要将Python中的dict(或对象)转化为JSON格式并传递给其他系统时,或者从其他系统获取JSON数据后需要将其转化为Python中的dict(或对象)进行处理时,就需要了解Python中dict(或对象)与JSON之间的互相转化。 将Python中的dict转化为JSON 在Python中,我们可以通过json模块对数据进行序列化和反序列化,序…

    python 2023年6月3日
    00
  • Python常见数字运算操作实例小结

    下面是详细讲解“Python常见数字运算操作实例小结”的完整攻略。 Python常见数字运算操作 Python是一种强大的编程语言,提供了丰富的数字运算操作。下面介绍Python常见的数字运算操作。 加法、减法、乘法和除法 加法、减法、乘法和除法是Python中最基本的数字运算操作,可以使用加号、减号、乘号和除号来实现。 下面是一个Python实现加法、减法…

    python 2023年5月14日
    00
  • 正则表达式详析+常用示例

    正则表达式详析+常用示例 正则表达式是一种用来描述字符串模式的工具,它可以用来匹配、查找、替换字符串中的特定模式。在本文中,我们将详细讲解正则表达式的语法规则和常用示例。 正则表达式语法规则 正则表达式由一系列字符和特殊符号组成,用来描述字符串的模式。以下是一些常用的正则表达式语法规则: 字符匹配 .:匹配任意一个字符。 \w:匹配任意一个字母、数字或下划线…

    python 2023年5月14日
    00
  • 无法通过 python 读取 Outlook 自定义表单

    【问题标题】:Unable to read outlook custom form through python无法通过 python 读取 Outlook 自定义表单 【发布时间】:2023-04-04 02:55:01 【问题描述】: 我有一封自定义表单的 Outlook 电子邮件。当我们双击它时,它会以表格形式打开。如果我们将它作为普通邮件打开(单击)…

    Python开发 2023年4月6日
    00
  • Python素数检测的方法

    Python素数检测是数学中的一个重要问题,Python可以很方便地实现这个操作。本文将介绍Python实现素数检测的完整攻略,包括两个示例说明。 1. 基本思路 素数是只能被1和自身整除的正整数,因此,我们可以从2开始,一直到这个数的平方根,检查这个数是否能被这些数整除。具体实现如下: def is_prime(n): if n < 2: retur…

    python 2023年5月14日
    00
  • 是否可以将此 Python 代码翻译成 Cython?

    【问题标题】:Is it possible to translate this Python code to Cython?是否可以将此 Python 代码翻译成 Cython? 【发布时间】:2023-04-06 01:23:01 【问题描述】: 我实际上希望尽可能加快此代码的#2,所以我认为尝试 Cython 可能会很有用。但是,我不确定如何在 Cyth…

    Python开发 2023年4月6日
    00
  • 使用C++调用Python代码的方法详解

    下面我将详细讲解使用C++调用Python代码的方法,希望能对你有所帮助。 什么是C++调用Python C++是一种高效而强大的编程语言,而Python则被广泛用于数据处理和科学计算。使用C++调用Python的过程就是将Python代码集成到C++程序中,使得C++可以调用Python模块和函数。这种方法可以使得用C++编写的程序,直接调用Python中…

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