Python读取当前文件名

在Python中,我们经常需要获取当前正在执行的脚本的文件名。这对于调试和日志记录非常有用。在本文中,我们将探讨不同的方法来读取当前文件名,并提供Python代码示例。

方法一:使用__file__变量

Python中的__file__变量是一个内置变量,它保存了当前脚本的文件路径。我们可以使用os.path模块中的方法来提取文件名。

import os

filename = os.path.basename(__file__)
print("当前文件名:", filename)

上述代码将输出当前脚本的文件名。

方法二:使用sys.argv[0]

另一种常见的方法是使用sys.argv[0]变量,它包含了当前脚本的文件路径。我们同样可以使用os.path模块来提取文件名。

import sys
import os

filename = os.path.basename(sys.argv[0])
print("当前文件名:", filename)

这段代码将打印出当前脚本的文件名。

方法三:使用inspect模块

Python的inspect模块提供了一些有用的函数,可以用于检查源码和对象。我们可以使用inspect模块来获取当前脚本的文件名。

import inspect

filename = inspect.getframeinfo(inspect.currentframe()).filename
print("当前文件名:", filename)

这段代码将输出当前脚本的文件名。

方法四:使用sys模块

最后一种方法是使用sys模块中的path变量来获取当前脚本的文件名。

import sys

filename = sys.path[0]
print("当前文件名:", filename)

这段代码将打印出当前脚本的文件名。

总结

在本文中,我们介绍了四种方法来获取当前正在执行的Python脚本的文件名。这些方法包括使用__file__变量、sys.argv[0]变量、inspect模块和sys模块。根据不同的需求,我们可以选择适合的方法来读取当前文件名。

示例代码

import os
import sys
import inspect

# 使用__file__变量
filename = os.path.basename(__file__)
print("当前文件名:", filename)

# 使用sys.argv[0]
filename = os.path.basename(sys.argv[0])
print("当前文件名:", filename)

# 使用inspect模块
filename = inspect.getframeinfo(inspect.currentframe()).filename
print("当前文件名:", filename)

# 使用sys模块
filename = sys.path[0]
print("当前文件名:", filename)

表格

下面是一个使用markdown语法的表格示例:

名称 说明
方法一 使用__file__变量
方法二 使用sys.argv[0]
方法三 使用inspect模块
方法四 使用sys模块

饼状图

使用mermaid语法中的pie标识,我们可以创建一个饼状图来显示不同方法的使用情况。

pie
    title 不同方法的使用情况
    "方法一": 25
    "方法二": 30
    "方法三": 20
    "方法四": 25

以上就是关于Python读取当前文件名的科普文章,我们介绍了四种方法并提供了相应的代码示例。希望这篇文章能帮助你在Python中获取当前文件名时更加方便和准确。