如何彻底解决python NameError:name '__file__' is not defined
作者:龙小马 发布时间:2023-01-29 03:57:12
标签:python,defined,nameerror
问题背景
我创建了一个函数,里面包含了一个获取当前执行文件路径的代码
current_path = os.path.dirname(os.path.abspath(__file__))
我把这段代码放在了函数中间位置(图片中已经被注释掉的部分)。
在CMD窗口执行python文件时,报NameError: name ‘file’ is not defined错误。(也在linux中执行过,同样报错)
查找了几个方案(比如,下图所示),有说要把__file__改成’file’的(这个根本就是扯淡),还有说要把os.path.abspath改成os.getcwd()的(获取的是执行命令的当前路径)。
测试了这几个方案,并不能获取当前执行文件的绝对路径。
解决方案
因为以前我的这段代码是可以正常执行的,改过之后就出现了这个错误。
各种百度、琢磨,一晚之后,翌日清晨,我把这段代码放在了函数的最开始位置。然后测试成功了!成功了!成功了!
这段代码就可以正常获取当前文件的路径而不报错误!
记录下自己的踩坑之路,以便遇到相同坑的人能尽快跳出!!
来源:https://blog.csdn.net/wuhuideluori/article/details/118065659
0
投稿
猜你喜欢
- wed的打印方法具我自己懂得知道的有: 1、JQuery插件Jqprint实现 2、JQery打印插件PrintArea实现网页打印 3、C
- 影响的范围: IE的所有版本在表单的radio/checkbox控件中,一旦他们的DOM结构被更改过就会出现这个bug。bug描述当象下例中
- python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib
- 需求说明:在开发 vue 项目的过程中遇到的需求是要把 api 接口前缀暴露在命令行,通过 npm run build apiUrl 即可修
- 本文为大家分享了MySQL 8.0.29 安装配置方法图文教程,供大家参考,具体内容如下一、安装包下载1、下载地址安装包,按下图所示操作下载
- 本文实例讲述了Python单元和文档测试。分享给大家供大家参考,具体如下:单元和文档测试1、单元测试单元测试就是用来对一个模块、一个函数或者
- 需求:Python检测URL状态,并追加保存200的URL代码一:#! /usr/bin/env python#coding=utf-8im
- 前言数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种“数组”类型的实现。listtuplearray.arrayst
- 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
- 一、pycharm字体放大的设置File —>setting —> Keymap —>在搜寻框中输入increase —&
- 当使用Python的flask框架来开发网站后台,解析前端Post来的数据,通常都会使用request.form来获取前端传过来的数据,但是
- 介绍vue-router相当于vue内部跳转链接,将需要切换的页面在vue-router里注册,在项目里配置就能完成页面的切换,它不仅能完成
- python 3.10上安装pyqt5前言首先,看一下自己电脑上的python的版本,网上有太多乱七八糟的教程,啥也不说就硬教,跟着做的话就
- 预编译语句预编译语句是一种用于执行参数化SQL查询的技术,它可以提高性能并减少SQL注入的风险。预编译语句主要有以下优势:避免SQL注入攻击
- 今天没事回家写了个贴吧图片下载程序,工具用的是PyCharm,这个工具很实用,开始用的Eclipse,但是再使用类库或者其它方便并不实用,所
- 群里有人提出这么一个需求:每天都会传过来一份 Word 文档,里面有多个 Excel 附件,需要把 Excel 内容读取出来。第一反应是使用
- 问题:如果一个网站拥有两个域名:domain1.com和domain2.com。在网站运营前期,主推domain1.com,但发展到中期,由
- 一、基本(1)利用pytorch建好的层进行搭建import torchfrom torch import nnfrom torch.nn
- Python安装新包,pip是很好用的安装工具。pip list 可以查询所有已安装的包和版本。怎么知道本地安装包的版本是否有可以更新的新版
- 代码如下:<% FunctIon DownloadFIle(StrFIle) StrFIlename=StrFIle Response