首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过在python中调用文件中的函数名来打印文件名

在Python中,可以通过使用内置的inspect模块来实现通过函数名打印文件名的功能。下面是实现的步骤:

  1. 导入inspect模块:import inspect
  2. 定义一个函数,用于获取当前文件名:def get_file_name(): return inspect.stack()[1][1]
  3. 定义一个函数,用于通过函数名打印文件名:def print_file_name(func_name): print(get_file_name())
  4. 在需要调用的文件中,导入包含上述函数的模块,并调用print_file_name函数,传入需要打印文件名的函数名作为参数。

下面是一个示例:

代码语言:txt
复制
# file_utils.py
import inspect

def get_file_name():
    return inspect.stack()[1][1]

def print_file_name(func_name):
    print(get_file_name())

# main.py
from file_utils import print_file_name

def my_function():
    print_file_name(my_function.__name__)

my_function()  # 输出:main.py

在上述示例中,file_utils.py是包含获取文件名和打印文件名的模块,main.py是调用这些函数的文件。通过在my_function函数中调用print_file_name函数,并传入my_function.__name__作为参数,即可打印出当前文件名main.py

注意:上述示例中的print_file_name函数只能打印出调用它的函数所在的文件名,而不是调用my_function的文件名。如果需要打印调用my_function的文件名,可以在print_file_name函数中使用inspect.stack()[2][1]来获取。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 Go 函数获取调用数名文件名、行号...

背景 我们应用程序代码添加业务日志时候,不论是什么级别的日志,除了我们主动传给 Logger 让它记录信息外,这行日志是由哪个函数打印、所在位置也是非常重要信息,不然排查问题时候很有可能就犹如大海捞针...如果让我们用 Go 设计一个Log Facade,就需要我们自己门面里获取调用数名文件位置了,那么Go里面怎么实现这个功能呢?...//获取是 CallerA函数调用调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用文件行号。...获取调用数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用函数信息 *runtime.Func,再进一步获取到调用数名字,这里面会用到函数和方法如下

6.5K20

如何掌握Python监控文件系统技术

通过阅读本文,您将了解如何检测对Python应用程序现有文件所做更改。我们将使用一个维护良好模块,叫做看门狗(watchdog)。...本教程,我将只介绍Python API库。让我们继续下一节,开始安装必要模块。 设置 设置是相当简单和直接pip安装。继续之前,强烈建议设置一个虚拟环境。...从代码库安装 此外,您可以本地文件克隆存储库并正常安装它。首先,让我们使用以下命令克隆它。...直接从存储库克隆它一个主要优点是,您可以获得带有附加特性最新版本。 您可以终端运行以下命令验证安装是否成功。...根据您设置名称修改名称。 python test.py 您可以通过创建一个新文档、修改其中内容并从目录删除它轻松地测试它。下面是输出示例: ·END·

1.9K20
  • 把模块有关联放在一个文件 python2调用文件夹名会直接失败 python3调用会成功,但是调用不能成功解决方案

    把模块有关联放在一个文件 python2调用文件夹名会直接失败 python3调用会成功,但是调用不能成功 解决办法是: 文件夹下加入空文件__init__.py python2会把该文件夹整体当成一个包.../或者类名也行] 再通过from . import 模块名 这样就可以调用那些模块功能了 #如果导入这个模块方式是 from 模块名 import * ,那么仅仅会导入__all__列表包含名字...举个栗子就清楚了: 当前我们有个包名为TestMsg,里面文件如下: 1.文件夹__pycache__: __init__.cpython-35.pyc: 160d 0d0a 0072 f058 2d00...744d 7367 2f73 656e 646d 7367 2e70 7974 0800 0000 3c6d 6f64 756c 653e 0100 0000 7300 0000 00 我们还有一个文件名为...TestMsg文件夹下文件 ? __pycache__文件夹下文件 ? 源码已给出 亲测有效 建议看此文同学都能多多尝试!!!祝各位工作顺利 合家幸福 学习更上一层楼

    1.7K50

    pycharm如何新建Python文件?_github下载python源码项目怎么用

    问题 最近想把本地python项目提交到github,在网上找很多教程,都是如何在pycharm设置操作,但是这些人只讲了一部分,对于小白来说,需要从头到尾彻底了解一下。...pycharm设置 pycharm需要配置github账户名和密码,以及要提交仓库,具体操作如下 File-settings 搜索框输入git 如上面图所示,搜索框会出现github,然后在旁边输入你...git init,初始化本文件夹为仓库,(如果该文件夹下有项目了,可以把项目先移到另一个文件夹,然后用命令git init初始化原来项目文件夹为仓库,然后再将项目拷贝进来)。...初始化后会发现该文件夹下多了个.git文件夹。...pycharm配置仓库提交 点击VSC ——》Import into Version Control ——》Share Project on Github 因为有默认名称,我这里是已经建过仓库了

    2.8K20

    python接口测试:一个用例文件调用另一个用例文件定义方法

    简单说明 进行接口测试时,经常会遇到不同接口间传递参数情况,即一个接口某个参数需要取另一个接口返回值; 平常写脚本过程,我经常会在同一个py文件,把相关接口调用方法都写好,这样同一个文件能够很方便进行调用...; 后来随着功能增多,写其他py文件时,有时也会先调用某个相同接口获取参数; 如果在每个py文件中都写一遍调用某个接口方法,会显得很啰嗦,也不好维护,并且以后万一提供数据那个接口发生变化...,需要调整很多地方; 所以,当我们一个用例py文件写好某个接口调用方法,后续如果在其他py文件也要用到这个接口返回值,则直接引用先前py文件定义好接口调用方法即可。...CreateActivity类,得到一个实例temp temp.setUp() # 通过实例调用CreateActivity类下setUp和tearDown方法,进行初始化...id,这个id就是由test_A.py文件CreateActivity类下 push_file_download 方法生成; 所以这里要先调用push_file_download方法,对应第

    2.9K40

    Python如何使用GUI自动化控制键盘和鼠标实现高效办公

    python界面引入模块   1.2 解决程序出现错误,及时制止  开始 GUI 自动化之前,你需要知道如何解决可能发生问题。...1.2.1 通过任务管理器关闭程序  windows可以使用 Ctrl+Alt+Delete键启动,并且进程中进行关闭,或者直接注销计算机阻止程序乱作为  1.2.2 暂停和自动防故障设置 ...(1)可以告诉脚本每次调用函数以后有暂停时间允许我们关闭窗口,可以通过设置pyautogui.PAUSE规定暂停秒数。...1.4.2 拖动鼠标  拖动即移动鼠标,按着一个按键不放来移动屏幕上位置,例如:可以文件拖动文件移动位置,或者将文件等拉入发送框内相当于复制粘贴操作 pyautogui提供了一个pyautogui.dragTo...调用 click() 方法之前, 你可以获取屏幕快照,查看脚本要点击处像素。可以利用语句判断跟原来颜色是否相同,如果它颜色和灰色按钮不一样, 那么程序就知道出问题了。

    4.1K31

    关于“Python核心知识点整理大全15

    打印这个列表后,Python进入 while循环,因为它发现'cat'列表至少出现了一次。...Eric would like to climb Denali. 7.4 小结 本章,你学习了:如何在程序中使用input()让用户提供信息;如何处理文本和数字 输入,以及如何使用while循环让程序按用户要求不断地运行...第8章,你将学习函数。函数让你能够将程序分成多个很小部分,其中每部分都负责 完成一项具体任务。你可以根据需要调用同一个函数任意次,还可将函数存储独立文件。...函数,可根据需要使用任意数量位置实参,Python将按顺序将函数调用实参关联 到函数定义相应形参。 2....关键字实参让你无需考虑调用实参顺序,还清楚地指出了函数调用各个值用途。

    12410

    关于“Python核心知识点整理大全18

    函数体内print语句通过生成输出来证明Python能够处理使用一个值调用情形,也能处理使用三个值调用函数情形。...通过将函数存储独立文件,可隐藏程序代码细节,将重点放在程序高层逻辑上。 这还能让你在众多不同程序重用函数。将函数存储独立文件后,可与其他程序员共享这 些文件而不是整个程序。...模块是扩展名为.py文件,包含要导入到程序 代码。下面创建一个包含函数make_pizza()模块。...读取这个文件时,代码行import pizza让Python打开文件pizza.py,并将其中所有 数都复制到这个程序。...要调用被导入模块函数,可指定导入模块名称pizza和函数名make_pizza(),并用 句点分隔它们(见Ø)。

    10510

    “零基础”也能学会python 函数

    理 解 中学数学,可以用这样方式定义函数:y=4x+3,这就是一个一次函数,当然,也可以写成:f(x)=4x+3。其中x 是变量,它可以代表任何数。...其实在高级语言编程,变量比我们初中数学中学习要复杂。但是,先不管那些,现在,就按照初中数学难度研究Python 变量。... Python ,通常用小写字母命名变量,也可以在其中加上下画线,以表示区别。...定义函数格式为: def 函数名(参数1,参数2,...,参数n): 函数体(语句块) 是不是样式很简单呢? 几点说明: 函数名命名规则要符合Python 命名要求。...Python 也很在乎名字问题,其实,所有高级语言对名字都有要求。为什么呢?因为如果命 名乱了,计算机就有点不知所措了。看Python 对命名一般要求。 文件名:全小写,可使用下画线。

    35530

    python web开发-flask中日志使用

    查看结果 运行结果如下: INFO in Code [D:/xxxxx/flask/Code.py:20]: my first logging 默认情况下,flask日志是打印屏幕上。...不过一般我们是需要在一个文件里进行日志记录,下面我们来看一下如何设置日志记录在文件上。 1....引用logging 因为flask日志底层引用pythonlogging,设置需要通过pythonlogging进行,如下代码: import logging 2....levelname)s - %(message)s') 上面的代码里设置了两个参数,filename设置是日志记录文件(注意设置文件权限),后一个参数设置了日志打印格式。...,可能没有 %(filename)s 调用日志输出函数模块文件名 %(module)s 调用日志输出函数模块名 %(funcName)s 调用日志输出函数数名 %(lineno)d 调用日志输出函数语句所在代码行

    1.7K40

    python web开发-flask中日

    查看结果 运行结果如下: INFO in Code [D:/xxxxx/flask/Code.py:20]: my first logging 默认情况下,flask日志是打印屏幕上。...不过一般我们是需要在一个文件里进行日志记录,下面我们来看一下如何设置日志记录在文件上。 1....引用logging 因为flask日志底层引用pythonlogging,设置需要通过pythonlogging进行,如下代码: import logging 2....levelname)s - %(message)s') 上面的代码里设置了两个参数,filename设置是日志记录文件(注意设置文件权限),后一个参数设置了日志打印格式。...,可能没有 %(filename)s 调用日志输出函数模块文件名 %(module)s 调用日志输出函数模块名 %(funcName)s 调用日志输出函数数名 %(lineno)d 调用日志输出函数语句所在代码行

    26610

    Python 入口函数(菜鸟入门)

    顺序执行 Python 世界,每一个 .py 文件就是一个模块,控制台中输入文件名即可调用该模块。 模块有些类似于 批处理文件(.bat) ,其中语句是按顺序执行。...这点和我最初想象不一致,总想着它和 C# 等语言一样,文件应该由 class 组织,实则不然。... D盘 创建 Test2.py 文件,在其中调用 Test1.py 模块: import Test1 print("Test2 First") print("Test2 Second") 控制台中启动...除了按顺序执行,还可以根据需要调用,就像 C# 语言中那样。...上文中 Print 应该就是一个内建函数,查资料,找到 Pyhton 函数定义: def 函数名(参数列表): 函数体 赶紧试一下, Test1.py 定义一个 SayHello 函数

    2.2K00

    Python 函数

    同样我们也可以将函数看做是一个实现相关功能工具,只是这个工具有时需要我们自己实现而已。本章主要来学习如何使用 python 实现这个称谓函数工具。...函数定义 python 函数定义格式如下 def 函数名称(参数列表): 函数体 如上所示 python 定义一个函数需要使 def 语句,一次写出函数名称、括号、括号参数列表和冒号...在编写程序过程,往往未想好如何实现一个函数时,需要先写出函数名称(API)来使程序能够正常运行,然后再进一步 完善函数功能,此时我们可以使用 pass 语句定义一个空函数。...以上代码我们还进行了函数调用 max(1, 3) 和 max(5, 2) 即函数调用调用函数可直接使用函数名称、括号,括号内写入向函数输入参数「若为无参数函数,括号内为空」。...从函数调用我们可以看书,当我们需要计算一个数平方时调用函数时可以直接省略 n 值。我们需要计算其他次方时又可以通过输入 n 获取正确结果。

    64920

    Shell 编程核心技术《三》

    执行脚本我使用命令是:sh /tmp/test_001.sh,执行结果 0 是当前文件名,但此时参数没有值,参数个数为空。...如上图所示,定义一个名为:helloworld 函数,函数通过 if 语句判断第一个参数 $1 是否等于 python,如果等于就打印 python auto tester。...然后调用helloworld 函数,并传入一个名为:python参数,系统打印输出 python auto tester。...我们还可以把上面直接在命令行输入函数稍微封装一下,放入shell脚本函数并进行调用通过 elif 判断 $1 是否等于 java,如果等于 java 就打印 java auto tester。...调用函数执行结果如下: 执行并传入 python 参数,你可以看到最终打印python auto tester。

    84120

    PE文件详解(七)

    一般dll中保存函数名称以及它地址,当某个程序需要调用dll函数时,如果这个dll在内存,则直接找到对应函数在内存位置,并映射到对应虚拟地址空间中,如果在内存没有对应dll,则会先通过...数组项目与文件名地址表项目一一对应,项目值代表函数入口地址表索引,这样 数名称与函数入口地址关联起来。...“MyFunction” 他们关系如图所示: 一般分析定位函数地址时候采用通过数名定位 定位时可以使用序号方式,也可以使用函数名方式定位,使用序号需要提前知道这个函数对应序号...如果病毒代码中用到某些 API 的话,这些 API 地址不可能在宿主文件导出表为病毒代码准备好。 因此只能通过在内存动态查找方法实现获取API 地址。...通过之前计算公式得到导出表文件偏移为0x00000660.

    97110

    Python基础知识总结

    格式化 Python不需要用分号结束一行代码,取而代之就是严格缩进格式,刚刚开始就是过因为缩进格式不对,不断出现错误,具体你敲一个回车时候,下一行要缩进几格是可以设置:Preferences...,这样python才知道你是要调用random方法。...r:只读模式 w:覆盖模式 a:添加模式 函数格式: file(‘文件名’,’参数’) open(‘文件名’,’参数’) 读文件命令很简单: file('文件名') #默认参数为r 如果文件和代码放在同一个文件夹...(123,456) calcSum() 输出: 6 579 0 变量前加上星号前缀(*),调用参数会存储一个 tuple(元组)对象,赋值给形参。...然而Python多线程并不完善,这里推荐两篇文章,有兴趣可以去研读一下: 理解 Python 多线程 Python GIL 是什么鬼,多线程性能究竟如何

    1.6K21

    WebAssembly技术_JS调用C函数示例_传递参数、方法导出

    这篇文章主要演示C代码如何编译成wasm文件如何生成JS文件,JS代码如何调用wasm文件封装C语言函数。分别编写了两个案例演示了整体流程,完成C函数传参、返回值接收等功能。 2....这个JS文件由emcc编译器自动生成,里面封装了C语言函数,可以直接通过JS文件方法调用C函数。...-o hello.js 指定生成js文件名称,并且会自动生成一个同名wasm文件。...HTML代码里创建了3个按钮,分别调用了3个函数,测试调用C语言函数。 注意: JS文件里导出C函数数名称前面都是带了一个下划线,调用时要加上下划线。...HTML代码里创建了几个按钮,分别调用了C语言代码里提供几个测试函数。 注意: JS文件里导出C函数数名称前面都是带了一个下划线,调用时要加上下划线。

    6.6K60
    领券