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

如何在python中获取当前打开的文件行?

在Python中,可以使用内置的inspect模块来获取当前打开的文件行。具体操作如下:

  1. 首先,需要导入inspect模块。
代码语言:python
代码运行次数:0
复制
import inspect
  1. 然后,使用inspect.currentframe()函数获取当前的栈帧,再使用inspect.getfile(frame)函数获取当前栈帧对应的文件名。
代码语言:python
代码运行次数:0
复制
frame = inspect.currentframe()
filename = inspect.getfile(frame)
  1. 接着,使用inspect.getlineno(frame)函数获取当前栈帧对应的文件行号。
代码语言:python
代码运行次数:0
复制
lineno = inspect.getlineno(frame)
  1. 最后,可以将文件名和文件行号打印出来。
代码语言:python
代码运行次数:0
复制
print(f"当前文件名:{filename}")
print(f"当前文件行号:{lineno}")

完整代码如下:

代码语言:python
代码运行次数:0
复制
import inspect

frame = inspect.currentframe()
filename = inspect.getfile(frame)
lineno = inspect.getlineno(frame)

print(f"当前文件名:{filename}")
print(f"当前文件行号:{lineno}")

输出结果类似于:

代码语言:txt
复制
当前文件名:test.py
当前文件行号:7

需要注意的是,inspect.currentframe()函数返回的是一个栈帧对象,需要在使用完后手动删除,以避免内存泄漏。可以使用del关键字来删除栈帧对象。

代码语言:python
代码运行次数:0
复制
del frame
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 何在代码获取Java应用当前版本号?

    最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...在META-INF文件夹中找到了两个相关东西,一个是MANIFEST.MF: Manifest-Version: 1.0 Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... <!...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

    3.2K20

    何在代码获取Java应用当前版本号?

    最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...在META-INF文件夹中找到了两个相关东西,一个是MANIFEST.MF: Manifest-Version: 1.0 Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... <!...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

    5.9K20

    如何拿到当前文件夹下所有文件?1Python代码搞定

    GitHub上有个开源项目:python-office,是专门用来自动化办公Python第三方库。...在自动化办公,一个重要功能就是批量处理文件,那么在处理之前,它是如何一次性获取指定文件夹下所有文件呢?今天我们一起来学习一下~1、上代码代码实现很简单,一共有2个参数:path 和 name。...功能:获取指定路径下所有文件参数 path: 必填,指定路径参数 name: 可以不填,名字包含内容返回值: 装满文件路径列表如果不填写name参数,效果如下图1框所示,会取出指定目录下所有文件...(包含子文件夹下内容)如果填写name参数,则只会取出指定路径下,文件名包含name指定内容文件。例如指定name=‘pdf’,则结果如下图2框所示。...:param level: 可以不填,获取第几层文件内容欢迎感兴趣朋友通过给开源项目PR形式,加入一起开发~⭐Github:https://github.com/CoderWanFeng/pofile

    79310

    python 获取当前目录下文件目录和文件名实例代码详解

    print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件 输出格式为:   当前文件目录路径   当前路径下子文件目录(若存在..., 不存在则为 [] )   当前路径下非目录子文件(仅为子文件文件名)     子文件1路径     子文件1下文件目录     子文件1下非目录子文件     子文件2路径     子文件2...下文件目录     子文件2下非目录子文件 # -*- coding: utf-8 -*- import os def file_name(file_dir): L=[]...知识点补充:利用python获取当前目录名称和获取指定目录下子目录和文件名称 import os #获取当前目录名称 print(os.getcwd()) #获取指定目录下子目录和文件名称 path...(root,name)) 到此这篇关于python 获取当前目录下文件目录和文件名实例代码详解文章就介绍到这了,更多相关python获取当前目录文件目录和文件名内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

    5K10

    何在50以下Python代码创建Web爬虫

    有兴趣了解Google,Bing或Yahoo工作方式吗?想知道抓取网络需要什么,以及简单网络抓取工具是什么样?在不到50Python(版本3)代码,这是一个简单Web爬虫!...我们先来谈谈网络爬虫目的是什么。维基百科页面所述,网络爬虫是一种以有条不紊方式浏览万维网以收集信息程序。网络爬虫收集哪些信息?...如果在页面上文本找不到该单词,则机器人将获取其集合下一个链接并重复该过程,再次收集下一页上文本和链接集。...一次又一次地重复这个过程,直到机器人找到了这个单词或者已经进入了你在spider()函数输入限制。 这是谷歌工作方式吗? 有点。...以下代码应完全适用于Python 3.x. 它是在2011年9月使用Python 3.2.2编写和测试。继续将其复制并粘贴到您Python IDE并运行或修改它!

    3.2K20

    何在 MSBuild 项目文件 csproj 获取绝对路径

    通常我们能够在 csproj 文件仅仅使用相对路径就完成大多数编译任务。但是有些外部命令执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同含义。...本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。...在 MSBuild 4.0 ,可以在 csproj 编写调用 PowerShell 脚本代码,于是获取一个路径绝对路径就非常简单: 1 [System.IO.Path]::GetFullPath...('$(WalterlvRelativePath)') 具体到 csproj 代码,是这样: 1 2 3 4 5 6 ...你可以阅读我其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径: 项目文件已知属性(知道了这些,就不会随便在 csproj 写死常量啦) - walterlv 如何更精准地设置

    25330

    Python3打开文件方式(With open)「建议收藏」

    —-open()函数 4.写入内容—– With Open函数 5.打开非utf-8编码文件 6.打开二进制文件 0.背景知识 & IO操作类型 python文件读写文件是最常见IO操作。...Python内置了读写文件函数,用法和C是兼容。 读写文件前,我们先必须了解一下,在磁盘上读写文件功能都是由操作系统提供,现代操作系统不允许普通程序直接操作磁盘。...读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供接口从这个文件对象读取数据(读文件),或者把数据写入这个文件对象(写文件) 常见IO操作类型如下: type...例如,read(1024) 每次读取1024个字节数据内容 调用readline()可以每次读取一内容,调用readlines()一次读取所有内容并按返回list。...遇到有些编码不规范文件,你可能会遇到UnicodeDecodeError,因为在文本文件可能夹杂了一些非法编码字符。

    2.2K10

    何在 Python 搜索和替换文件文本?

    在本文中,我将给大家演示如何在 python 中使用四种方法替换文件文本。 方法一:不使用任何外部模块搜索和替换文本 让我们看看如何在文本文件搜索和替换文本。...首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 Haiyong.txt,内容如下: 要替换文件文本,我们将使用 open() 函数以只读方式打开文件。...语法: open(file, mode=‘r’) 参数: file:文件位置 mode : 要打开文件模式 然后我们会以写模式打开同一个文件,写入替换内容。...语法:路径(文件) 参数: file:要打开文件位置 在下面的代码,我们将文本文件获取更多学习资料”替换为“找群主领取一本实体书”。使用 pathlib2 模块。..."文本已替换" # 创建一个变量并存储我们要搜索文本 search_text = "Python" # 创建一个变量并存储我们要更新文本 replace_text = "Java" # 调用

    15.5K42

    何在大型代码仓库删掉 6w 废弃文件和 exports?

    作者:ssh,字节跳动 Web Infra 团队成员 本文是我最近在公司内部写废弃代码删除工具一篇思考总结,目前在多个项目中已经删除约 6w 代码。...但下面两步依然很棘手,先给出我结论: 如何确定步骤 1 变量在本文件内部没有用到(作用域分析)?...所以需要给 rule 提供一个 varsPattern 选项,把分析范围限定在 ts-unused-exports 给出 导出未使用变量 varsPattern: '^foo|^bar' 。...经过排查,目前官方行为好像是把 tsconfig include 里所有 ts 文件加入到依赖,方便改动触发编译,而我们项目中 include 是 ["src/**/*.ts"] ,所以…...到此思路也就有了,把所有文件 imports 信息取一个合集,然后从第一步文件集合找出未出现在 imports 里文件即可。

    4.7K20

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

    如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...) Caller 函数会报告当前 Go 程序调用栈所执行函数文件和行号信息。...//获取是 CallerA函数调用者调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用在文件行号。...获取调用者函数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用栈函数信息 *runtime.Func,再进一步获取到调用者函数名字,这里面会用到函数和方法如下

    6.4K20

    【从零学习python 】51.文件打开与关闭及其在Python应用

    打开文件python,使用open函数,可以打开一个已经存在文件,或者创建一个新文件 open(文件路径,访问模式) 示例如下: f = open('test.txt', 'w') 说明: 文件路径...例如:C:/Users/chris/AppData/Local/Programs/Python/Python37/python.exe,从电脑盘符开始,表示就是一个绝对路径。...相对路径:是从当前文件所在文件夹开始路径。 test.txt,是在当前文件夹查找 test.txt 文件 ./test.txt,也是在当前文件夹里查找test.txt文件, ..../表示当前文件夹。 ../test.txt,从当前文件上一级文件夹里查找 test.txt 文件。 ...../表示是上一级文件夹 demo/test.txt,在当前文件夹里查找 demo 这个文件夹,并在这个文件夹里查找 test.txt 文件。 访问模式: 访问模式说明r以只读方式打开文件

    10410

    何在 asp.net core 3.x startup.cs 文件获取注入服务

    必定会造成之前某些写法没办法继续使用,趁着端午节假期,在改造模板时,发现没办法通过构造函数注入形式在 Startup 文件中注入某些我需要服务了,因此本篇文章主要介绍如何在 asp.net core...3.x startup 文件获取注入服务 二、Step by Step 2.1、问题案例 这个问题发现源于我需要改造模型验证失败时返回错误信息,如果你有尝试的话,在 3.x 版本你会发现在...Startup 类,我们没办法通过构造函数注入方式再注入任何其它服务了,这里仅以我代码需要解决这个问题作为案例 在定义接口时,为了降低后期调整复杂度,在接收参数时,一般会将参数包装成一个...,而服务定位则是我们已经知道存在这个服务了,从容器获取出来然后由自己手动创建实例 虽然服务定位是一种反模式,但是在某些情况下,我们又不得不采用 这里对于本篇文章开篇需要解决问题,我也是采用服务定位方式...,通过构建一个 ServiceProvider 之后,手动从容器获取需要使用服务实例,调整后代码如下 /// /// 添加自定义模型验证失败时返回错误信息 /// </summary

    2.1K30
    领券