如何获取调用 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 函数的脚本名称? 的相关文章

  • “扩展”numpy ndarray 的好方法?

    有没有 扩展 numpy ndarray 的好方法 假设我有一个像这样的 ndarray 1 2 3 4 我希望每行通过填充零来包含更多元素 1 2 0 0 0 3 4 0 0 0 我知道一定有一些蛮力的方法可以做到这一点 比如构造一个带有
  • 无法使用 beautifulsoup 模块 python 从 HTML 检索温度值

    我正在使用 BeautifulSoup4 来解析此 HTML 查看源代码 https weather com en IN weather today l 17 39 78 49 https weather com en IN weather
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • 插入多行并返回主键时 Sqlalchemy 的奇怪行为

    插入多行并返回主键时 我注意到一些奇怪的事情 如果我在 isert 查询中添加使用参数值 我会得到预期的行为 但是当将值传递给游标时 不会返回任何内容 这可能是一个错误还是我误解了什么 我的sqlachemy版本是0 9 4 下面如何重现错
  • 代码 zip( *sorted( zip(units, error) ) ) 的作用是什么?

    对于我的申请units and errors始终是数值列表 我尝试用谷歌搜索每个部分的作用 并找出了 zip 的第一部分 它似乎 ziped list zip units errors 只需将单位和误差配对即可生成一个列表 如下所示 uni
  • 尽管 ioff() 和 matplotlib.use('Agg'),Pyplot“无法连接到 X 服务器 localhost:10.0”

    我有一段代码 它被不同的函数调用 为我执行一些计算 然后将输出绘制到文件中 鉴于整个脚本可能需要一段时间才能运行更大的数据集 并且由于我可能想在给定时间分析多个数据集 所以我开始它screen然后断开连接并关闭我的腻子会话 并在第二天再检查
  • 使用 pygtk3 将 GUI 窗口添加到 python opencv2 程序

    我已经使用Python和Opencv2完成了一个程序 现在 我想向我的程序添加一个 GUI 窗口 我对 PyGtk3 有一些经验 因此 我修改了代码以采用 PyGtk3 但是 我遇到了错误 因此 我尝试了一个简单的程序来找出实际的错误 我的
  • 使用opencv+picamera流IO用树莓派捕获视频

    我使用 Raspberry 来简单地显示一个视频 目前仅此 为此 我必须使用 opencv cv2 我尝试了很多解决方案 但现在我想使用 Picamera 库捕获视频 我将向您展示我的代码 import io import time imp
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • Python控制台默认十六进制显示

    我在 Python 控制台中做了很多工作 其中大部分都涉及地址 我更喜欢以十六进制形式查看地址 So if a 0xBADF00D 当我简单地输入Python gt a进入控制台查看其值 我更喜欢 python 回复0xBADF00D代替1
  • Pandas:向量化局部范围操作([i:i+2] 行的最大值和总和)

    我希望在数据帧中的每一行的局部范围内进行计算 同时避免速度缓慢for环形 例如 对于下面数据中的每一行 我想找到未来 3 天内 包括当天 的最高气温以及未来 3 天内的总降雨量 Day Temperature Rain 0 30 4 1 3
  • 如何对嵌套函数进行单元测试? [复制]

    这个问题在这里已经有答案了 您将如何对嵌套函数进行单元测试f1 在下面的例子中 def f def f1 return 1 return 2 或者需要测试的函数不应该嵌套吗 有一个类似的问题这个链接 https stackoverflow
  • 替换 pandas 数据框中的点

    我有一个如图所示的数据框 数字实际上是对象 正在做df treasury rate pd to numeric df treasury rate 可预见的炸弹 然而 做df replace np nan 似乎没有摆脱这个点 所以我很困惑 有
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • 计算二维笛卡尔坐标中不规则形状的边界

    我正在寻找一种计算不规则形状边界的解决方案 Lats take a look at Square example 如果我有Minimum x and y and Maximum x and y like MaxX 5 MinX 1 MaxY
  • 将多个 isinstance 检查转换为结构模式匹配

    我想转换此现有代码以使用模式匹配 if isinstance x int pass elif isinstance x str x int x elif isinstance x float Decimal x round x else r
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • wxPython:更新wx.ListBox列表

    我在 python 程序中有一个 wx ListBox 我不想在 wx Timer 更新时更改其中的列表 我的计时器正在工作 我只是不知道如何更改它显示的列表 这是一个例子 http www daniweb com code snippet
  • python 中的异步编程

    python 中有异步编程的通用概念吗 我可以为一个函数分配一个回调 执行它并立即返回主程序流 无论该函数的执行需要多长时间吗 您所描述的 主程序流程在另一个函数执行时立即恢复 不是通常所说的 异步 又名 事件驱动 编程 而是 多任务 又名
  • 有效积累稀疏 scipy 矩阵的集合

    我有一个 O N NxN 的集合scipy sparse csr matrix 每个稀疏矩阵都有 N 个元素集 我想将所有这些矩阵加在一起以获得一个常规的 NxN numpy 数组 N 约为 1000 矩阵内非零元素的排列使得所得总和肯定不

随机推荐

  • 如何根据 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