如何获取调用 python 函数的脚本名称?

2023-12-09

我知道__file__包含包含代码的文件名,但是有没有办法获取调用该函数的脚本/文件的名称?

如果我有一个名为filenametest_b.py:

def printFilename():
    print(__file__)

我将函数导入filenametest_a.py:

from filenametest_b import *

printFilename()

I get:

C:\Users\a150495>python filenametest_a.py
C:\Users\a150495\filenametest_b.py

有什么我可以做的吗b文件来打印名称a file?


你可以打印sys.argv[0]获取脚本文件名。

要获取调用者的文件名,您需要使用sys._getframe()功能获取调用框架,然后您可以从中检索文件名:

import inspect, sys

print inspect.getsourcefile(sys, sys._getframe(1))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取调用 python 函数的脚本名称? 的相关文章

随机推荐

  • 如何根据 R ggplot2 中的 y 轴值重新排序 x 轴

    我正在尝试根据 y 轴的平均值对错误图上的 x 轴重新排序 我不介意是升序还是降序 我已经应用了基于的解决方案这个帖子 但是由于某种原因 它似乎忽略了reorder命令 你知道这里发生了什么吗 Import data df lt struc
  • Oracle UNION 不同列

    我有两张桌子 看起来像 TABLE 1 COL A int COL B float COL C float TABLE 2 COL A int COL B float 我的查询使用 UNION 将这些表的结果放在一起 但在 TABLE 2
  • 为什么我的 Perl 程序无法在 Windows 上创建超过 4 GB 的文件?

    为什么输出到文件时文件大小上限为 4 GB 使用打印文件 我希望通过流输出 应该可以生成任意大小的文件 Update ijw and 查斯 欧文斯是正确的 我以为F 驱动器是NTFS格式的 但实际上它使用的是FAT32文件系统 我 在另一个
  • 构建相关变量

    我有一个具有给定分布的变量 在下面的示例中为正态分布 set seed 32 var1 rnorm 100 mean 0 sd 1 我想创建一个与 var1 相关的变量 var2 其线性相关系数 大致或精确 等于 Corr var1 和 v
  • 如何在 Inno Setup 中根据操作系统版本选择要复制的文件?

    我已经使用 Inno setup 构建了一个安装程序 最近发现有些应用程序在Windows XP下无法运行 这些应用程序在 Windows 7 及更高版本上运行良好 我需要根据用户安装的 Windows 版本复制文件并相应地创建程序菜单快捷
  • 使用react-native检查手机上是否安装了Metamask应用程序

    我正在使用构建一个应用程序react native 我正在使用 React Native 的Linking用于在手机上安装的 Metamask 应用程序中打开我的网站链接的 API 这Linking opneURl url 如果设备上安装了
  • Node.js 无法连接到 MongoDB

    我对 Node js 和 MongoDB 都很陌生 我正在遵循本指南 http howtonode org express mongodb使用 Node js 和 MongoDB 创建一个简单的博客 当节点尝试连接到 MongoDB 时 它
  • SQL 中 XML 分解的替代方案

    我尝试使用 XQuery 将 XML 分解到临时表中 nodes如下 但是 我遇到了性能问题 粉碎需要花费很多时间 请给我一个关于替代方案的想法 我的要求是将批量记录传递给存储过程并解析这些记录并根据记录值执行一些操作 CREATE TAB
  • Protractor:使用 browser 或 browser.driver 方法?

    使用时protractor 全局变量browser似乎具有以下所有功能browser driver 我特意问这个是因为我不确定是否使用browser wait or browser driver wait因为它们看起来都是相同的方法 而且我
  • Json 问号(“??????”)而不是希伯来字符

    我正在从我的数据库获取包含希伯来语单词的数据 然后我从以下位置获取这些数据ResultSet放入一个字符串 然后放入一个JSONObject 这是代码 response setContentType application json Str
  • 了解 awk 分隔符 - 在基于正则表达式的字段分隔符中转义

    我有以下 shell 命令 awk F print 2 这个命令是做什么的 使用分隔符分割成字段 sometext E g echo this line passed to awk awk F print 2 line Editor s n
  • 使用 R 和 Lattice 的 XYZ 图中高程数据的颜色渐变

    我有一堆 XYZ 数据 其中 X 和 Y 是坐标 Z 应该是高程 LiDAR 点 我正在尝试使用基于 Z 值的梯度来绘制该点云 这是我到目前为止所拥有的 Read the CSV file with the LiDAR point clou
  • 序列化字节数组与 XML 文件

    我大量使用字节数组通过网络来回传输对象 原始数据 我采用了 java 的方法 通过让类型实现 ISerialized 它包含两个方法 作为接口的一部分 ReadObjectData 和 WriteObjectData 任何使用此接口的类都会
  • 计算字符串宽度(以像素为单位)以模拟自动换行时出现奇怪的行为

    尝试获取 C 中的字符串宽度来模拟自动换行和文本位置 现在用 richTextBox 编写 richTextBox 的大小是 555x454 px 我使用等宽字体 Courier New 12pt I tried TextRenderer
  • Bootstrap 3 移动设备上的多个菜单合并为一个

    我已经和菜单斗争了一段时间了 我想要的是顶部菜单和侧面菜单 为了在移动设备上有用 这两个菜单都需要折叠成可在手机上访问的菜单 这实际上可能吗 或者我是否必须为不同的屏幕尺寸编写不同的解决方案 Thanks html
  • 伪析构函数调用不会销毁对象

    考虑以下代码 include
  • Android 按钮的拖放

    我在 android 中工作 我正在使用一个按钮 现在我想执行该按钮的拖放操作 这是我的 main xml
  • 用Java显示CMD窗口

    我使用此代码启动 cmd 文件 try String line Process p Runtime getRuntime exec myPath punchRender cmd BufferedReader input new Buffer
  • 如何以编程方式禁用Android硬件按钮?

    我正在开发具有锁定功能的 Android 应用程序 请建议我如何以编程方式禁用所有硬键 在这里 我使用下面的代码来禁用后退按钮 我希望以编程方式为 Android 中的所有硬键 如主页 菜单按钮 通知栏 提供此功能 用于后退按钮 在活动或片
  • 如何获取调用 python 函数的脚本名称?

    我知道 file 包含包含代码的文件名 但是有没有办法获取调用该函数的脚本 文件的名称 如果我有一个名为filenametest b py def printFilename print file 我将函数导入filenametest a