调用模块的实质是运行python代码,比如a.py文件里有函数f(),那么你在调用a模块的时候,实质是运行了a模块里的函数f(),这个时候内存里就有这个函数了,可以直接用,那是不是随便一个py类型的文件都可以直接调用呢?不是的,调用模块的优先级:先从当前目录里面找你需要调用的模块,当前目录找不到的话就python自己的环境变量里找。

  下面例出常用的os模块的方法

import os,sys
print(sys.path)#获取python的环境变量,以list形式返回 #输出:['E:\\study\\Automantic\\jxz-code\\Course4'] print(os.listdir('./'))#获取指定目录下的文件及文件夹名称,以list形式返回 #输出:['access.log', 'b.txt', 'c.txt', 'course4作业.py', 'goods.txt', 'user_info.txt', '、', '函数.py'] print(os.getcwd())#获取当前目录 #输出:E:\study\Automantic\jxz-code\Course4 # print(os.chdir('E:\study\Automantic\jxz-code'))#更换当前目录 print(os.rename('c.txt','a.txt'))#修改文件名称 print(os.mkdir('新目录'))#创建文件夹 print(os.rmdir('新目录'))#删除文件夹(只能删除空文件夹) print(os.makedirs('E:\\xixi\\haha'))#依次创建目录 print(os.removedirs('E:\\xixi\\haha'))#依次删除非空目录 print(os.sep)#获取当前操作系统的路径分隔符 #输出:\ print(os.environ)#获取当前操作系统的环境变量 #输出:environ({'ALLUSERSPROFILE': 'C:\\ProgramData'}) print(os.pathsep)#获取当前系统的环境变量中每个路径的分隔符,linux是:,windows是; #输出:; print(os.path.abspath(__file__))#获取当前文件的绝对路径 #输出:E:\study\Automantic\jxz-code\Course4\函数.py
print(os.path.basename(os.path.abspath(__file__))#输出:函数.py
print(os.path.dirname(os.path.abspath(__file__)))#获取指定路径的父目录 #输出:E:\study\Automantic\jxz-code\Course4 print(os.path.isdir(os.path.abspath(__file__)))#判断指定路径是不是一个文件夹 #输出:False print(os.path.isfile(os.path.abspath(__file__)))#判断指定路径是不是一个文件 #输出:True print(os.path.join('一级','二级','三级','haha.txt'))#将内容以当前操作系统的路径分隔符拼接成一个路径 #输出:一级\二级\三级\haha.txt print(os.path.split('E:\study\Automantic\jxz-code\Course4\函数.py'))#分割路径和文件名 #输出:('E:\\study\\Automantic\\jxz-code\\Course4', '函数.py') print(os.path.exists('E:\study\Automantic\jxz-code\Course4\函数.py'))#判断目录或文件是否存在 #输出:True

# 得到指定文件最后一次的访问时间
print(os.path.getctime(os.path.abspath(__file__)))
# 得到指定文件最后一次的修改时间
print(os.path.getmtime(os.path.abspath(__file__)))
# 得到指定文件大小 单位: 字节
print(os.path.getsize(os.path.abspath(__file__)))
# 测试参数是否为绝对路径
print(os.path.isabs(os.path.abspath(__file__)))
# splitext 分割文件名,返回文件名和扩展名组成的元祖
print(os.path.splitext(os.path.abspath(__file__)))

  

os和sys的应用:

  问题:A君写了一个小系统,模块之间彼此可以正常调用,但是B君拷走了A君的代码,运行各种报错,大多为引用模块不存在,函数、方法未定义等,这是因为A君运行的时候都已经把他的绝对路径加进了python的环境变量,而B君在运行的时候并没有加环境变量,运行程序,在调用模块时,找不到模块自然报错了。

  解决:上面的模块介绍里可以看出,sys.path可以获取到一个python环境变量的列表,那么我们只需要把代码的工作目录加到列表里就可以了,具体代码如下:

import sys,os
cwd=os.path.abspath(__file__) #当前文件的绝对路径
pwd=os.path.dirname(cwd)#获取当前文件的父级目录 ppwd=os.path.dirname(pwd)#获取当前文件的父级目录的父级目录 sys.path.insert(0,ppwd)#将当前文件的父级目录的父级目录加入python环境变量,那么这个文件夹下的所有.py文件都可以当做模块引入了 from conf.setting import LOGS_PATH,FILE_PATH from lib.wrong import write write(LOGS_PATH,FILE_PATH)

  上题的截图:

原文:https://www.cnblogs.com/znyyy/p/7716644.html

转载于:https://www.cnblogs.com/fmgao-technology/p/9056280.html

Python3 os模块应用相关推荐

  1. python3 os模块使用_Python3-os模块-操作系统的各种接口

    Python3中的os模块提供了一个便携的方式去使用操作系统的相关功能 os.name 返回导入的操作系统相关模块的名字,如 posix(unix/linux),nt(windows)等 os.env ...

  2. python3 os模块_python3 os模块

    os模块就是对操作系统进行操作, 这个模块提供了一种使用操作系统相关功能的可移植方式. 1.系统信息 posix.uname_result(sysname='Linux', nodename='lia ...

  3. python3 os模块

    os 模块提供了非常丰富的方法用来处理文件和目录. 1.os.path 获取文件的属性信息 os.path模块 方法 方法 作用 os.path.exists(path) 判断路径是否存在,存在返回T ...

  4. python3 os模块相关方法

    # -*- coding:utf-8 -*- # Author: Evan Mi import os # 获取当前工作目录,即当前python脚本工作的目录路径 print(os.getcwd()) ...

  5. python3(七)os模块

    os模块 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: import os:#导入os模块 help(os ...

  6. Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。

    删除磁盘下所有的文件 1.引言 2.代码实战 2.1 模块介绍 2.2 获取盘符 2.3 获取盘符下的目录 2.3.1 os.listdir() 2.3.2 os.environ 2.3.3 os.g ...

  7. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  8. python中的os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- 另 ...

  9. Python的os模块常用文件夹的增删改查详解

    python常用os模块 增 os.makedirs("path\\目录") 用于递归创建目录 删 os.remove("path")用于删除指定路径(path ...

最新文章

  1. 概率论快速学习03:概率公理补充
  2. Swift_错误处理
  3. [Go]通道(channel)的基本操作
  4. HOJ 13828 Funfair
  5. sqlserver的for xml path和mysql的group_concat的区别
  6. 8、第六 -面向对象高级语法-异常处理
  7. SD-WAN技术分析
  8. 【SimpleITK】医疗影像分割结果评价指标计算
  9. Pandas高级教程之:时间处理
  10. shal+php,PHP微信开发——第二弹
  11. 服务器主板重装系统,简单几步教你如何重新安装系统
  12. xp下格式化linux分区的硬盘,Windows XP 下格式化和清理磁盘(转)
  13. deflate与gzip
  14. React Api请求最佳实践react-query3使用教程(比swr更好用更强大)
  15. conda search cuda后没有版本10的问题
  16. Android创建新的联系人,保存至现有联系人
  17. 【成为架构师课程系列】架构师的核心能力地图
  18. java 闭锁_从火箭发场景来学习Java多线程并发闭锁对象
  19. python编程入门必读书籍排行榜_【亲测】很的python数据分析书分享
  20. GIS中的栅格分析工具和技术

热门文章

  1. 文本分类 特征选取之CHI开方检验
  2. python操作MySQL实例
  3. Notepad++ 搜索功能学习总结
  4. opencv图像识别
  5. 在持续交付阶段中的测试覆盖率(译)
  6. QJson生成文件和解析文件
  7. [Xcode 实际操作]七、文件与数据-(2)创建文件夹
  8. String Typing CodeForces - 954B
  9. tomcat架构分析(valve机制)
  10. mysql5.6.4以下不支持多个字段类型为timestamp