__file__ 作用以及模块导入方法
python 执行py 文件的时候,默认就会把当前目录增加到sys.path中 import os
print(__file__) #打印文件当前的位置
直接在目录里面执行,结果显示当前文件(pycharm里面会给增加一个绝对路劲,这是pyharm自作主张增加的,终端里面是不会有的)

带上路劲执行,结果显示当前文件的绝对路劲(也就是说我提供了路径,所以__file__能找到我执行的路劲)

import os
print(os.path.dirname(__file__)) #打印当前文件上一层目录
直接执行,结果显示为空

指定路径后,执行会显示当前文件的上一层目录

import os
print(os.path.dirname(os.path.abspath(__file__))) #打印当前文件的绝对路劲,获取当前文件上一层目录
os.path.abspath(__file__) 获取当前当前文件的绝对路劲
os.path.dirname()获取当前文件上一层目录

如果我们加系统变量路劲;推荐使用这种方法: ---> 当前文件执行的目录的路劲就加入到python 路劲里面,后面不管你目录移动到什么位置,里面的文件都能执行
BASH_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASH_DIR)
python 终端执行报错: 因为__file __显示文件路劲,没有在文件里面执行,直接终端执行肯定报错.
>>> print(__file__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '__file__' is not defined
__file__ 作用以及模块导入方法的更多相关文章
- 详解Python模块导入方法
python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...
- python自定义模块导入方法,文件夹,包的区别
python模块导入,网上介绍的资料很多,方法也众说纷纭.根据自己的实践,感觉这个方法最简单直接,而且可以与主流的python ide生成的工程是一样的. 规则只有三条 1. 严格区分包和文 ...
- python之模块导入方法总结
模块在python编程中的地位举足轻重,熟练运用模块可以大大减少代码量,以最少的代码实现复杂的功能. 下面介绍一下在python编程中如何导入模块: (1)import 模块名:直接导入,这里导入模块 ...
- 第十八篇 模块与包--time&random模块&模块导入import(os.path.dirname(os.path.abspath(__file__)))
模块 在Python中, 一个.py文件就称为一个模块. 使用模块的好处: 1. 最大的好处就是大大提高了代码的可维护性 2. 编写代码不必从零开始.一个模块编写完毕,就可以被其他地方引用.在写其他程 ...
- python有三种导入模块的方法(转)
原文:http://www.cnblogs.com/allenblogs/archive/2011/11/15/2055149.html python有三种导入模块的方法 其一, import mod ...
- Day 4-1 模块的导入方法和路径
什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...
- python常用模块:包的使用、init作用、相对导入绝对导入与内置函数
今天主要讲的内容有: 一.包的详解二.相对导入和绝对导入三.内置模块补充 一.包的详解 1.包是什么 包其实也是一个模块,只不过是一个大的模块下包含一堆模块的载体 本质上也是一个文件夹,与普通文件的区 ...
- python三种导入模块的方法
做为python初学者,有时候搞不清楚导入模块的作用. 直接导入模块 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py"." ...
- Exporter - 实现默认的导入方法用于模块
Exporter - 实现默认的导入方法用于模块 简介: In module YourModule.pm: package YourModule; require Exporter; @ISA = q ...
随机推荐
- 引用 自动化测试基础篇--Selenium Python环境搭建
原文链接:https://www.cnblogs.com/sanzangTst/p/7452922.html 鸣谢参藏法师. 学习selenium python需要的工具: 1.浏览器 2.Pytho ...
- 【转】non-blocking REST services with Spring MVC
堵塞Controller Controller为单例: 非线程安全: 堵塞方式: 1个request对应1个处理Thread: @RestController public class Process ...
- 【Git】Git使用--常用命令
查看所有分支 git branch -a 查看本地分支 git branch 切换分支 git checkout test demo git checkout release_1.3.1 (切换到re ...
- MOngoDB为现有数据添加或删除某一字段
var lst =db.getCollection('config').find({}); while(lst.hasNext()) { var site=lst.next(); db.config. ...
- Kubernetes查看日志命令
查看pod日志 kubectl logs <pod_name> kubectl logs <pod_name> -c <container_name> docker ...
- scroll家族属性
上一篇主要分析了一下offset家族属性,本篇文章则主要是来分析一下scroll家族属性. 首先,scroll家族包括4个属性: 网页正文宽度:document.body.scrollWidth; 网 ...
- maven(一 基本操作 命令 标签)
原来一直没有使用maven 小公司,只是听说过这个东西,我没事就喜欢 去学习一些新东西.maven学了几次,但是 没有用上 所以 最后还是忘记了,或者说不知道怎么使用maven,一年半以前公司 改革 ...
- 服务网关zuul之五:熔断
路由熔断 当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行一降级.Zuul给我们提供了这样的支持.当某个服务出现异常时,直接返回我们预设的信息. 如果没有配置fall ...
- idea+dubbo+zookeeper项目访问html页面的方法
将js,html文件放入consumer的resource的static和template文件中 1 consumer的pom需要引入模板的jar包 <dependency> ...
- ngIf和ngFor共用
Angular v2不支持同一元素上使用多个结构指令. 一种解决方法,使用<ng-container>,允许为每个结构指令使用单独元素的元素,但不会将其标记为DOM. <ng-con ...