首页
学习
活动
专区
工具
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.7K20

如何掌握在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

    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

    在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中如何使用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....关键字实参让你无需考虑函 数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

    12810

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

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

    10810

    “零基础”也能学会的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的日志底层引用的是python的logging,设置需要通过python的logging进行,如下代码: import logging 2....levelname)s - %(message)s') 上面的代码里设置了两个参数,filename设置的是日志的记录文件(注意设置文件夹的权限),后一个参数设置了日志的打印格式。...,可能没有 %(filename)s 调用日志输出函数的模块的文件名 %(module)s 调用日志输出函数的模块名 %(funcName)s 调用日志输出函数的函数名 %(lineno)d 调用日志输出函数的语句所在的代码行

    26710

    python web开发-flask中日志的使用

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

    1.7K40

    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 的值来获取正确的结果。

    65220

    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。

    84420

    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

    PE文件详解(七)

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

    98510

    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.7K60
    领券