Python3 os模块应用
调用模块的实质是运行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)

上题的截图:

Python3 os模块应用的更多相关文章
- python3 os模块
os模块就是对操作系统进行操作,这个模块提供了一种使用操作系统相关功能的可移植方式.1.系统信息 posix.uname_result(sysname='Linux', nodename='liang ...
- Python3 os模块&sys模块&hashlib模块
''' os模块 非常重要的模块 ''' import os # print(os.getcwd()) # 获取当前工作目录 # os.chdir(r'路径名') # 改变当前工作目录 # print ...
- python3 os模块的常用功能及方法总结
1.os.getcwd() #显示当前工作路径 2.os.listdir('dirname') #返回指定目录下的所有文件和目录名 3.os.remove('filename') ...
- python3.7 os模块
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 os模块 #os模块是与操作系统交互的一个接口 # os.get ...
- Python3 os.path() 模块
os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序 号 方法及描述 1 os.access(path, mode):检验权限模式 2 os.chdir(path) ...
- (转)Python3之os模块
原文:https://www.cnblogs.com/wang-yc/p/5623981.html 一:简介 os模块主要用于提供系统高级别的操作. 二:常用方法 1 2 3 4 5 6 7 8 9 ...
- Python3之os模块
一:简介 os模块主要用于提供系统高级别的操作. 二:常用方法 os.access(path, mode) # 检验权限模式 os.chdir(path) # 改变当前工作目录 os.chflags( ...
- python3中OS模块
os模块 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: import os:#导入os模块 help(os ...
- (11)-Python3之--os模块
1.模块介绍 os模块是路径处理模块,它提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道 ...
随机推荐
- (转)spring hibernate properties详解
转载地址:http://blog.sina.com.cn/s/blog_692d0a650100xyqx.html Hibernate配置属性 hibernate.dialect:一个Hibernat ...
- HDU1042N!大数的阶乘java模板
import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(St ...
- OC基础:内存(内存管理) 分类: ios学习 OC 2015-06-25 16:50 73人阅读 评论(0) 收藏
自动释放池: @autoreleasepool { } 内存管理机制 谁污染,谁治理 垃圾回收机制:gc(Garbage collection),由系统管理内存,开发人员不需要管理. OC ...
- 基于VUE2.0的分页插件(很好用,很简单)
基于jQuery的分页插件很多,今天分享一下基于Vue的分页插件pagination.js,该插件使用用感觉很不错,简单不复杂,现将个人使用过程中的方法与遇到的问题以及实例分享出来. 下载解压的主要目 ...
- 【error】Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs.
前言 使用matlab通过摄像头获取图像进行处理: 问题描述 使用matalb调用摄像头时出现错误: >> imaqhwinfo Warning: No Image Acquisition ...
- Softmax回归介绍
把输入值当成幂指数求值,再正则化这些结果值.这个幂运算表示,更大的证据对应更大的假设模型(hypothesis)里面的乘数权重值.反之,拥有更少的证据意味着在假设模型里面拥有更小的乘数系数.假设模型里 ...
- 查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)
Viewer的github地址:https://github.com/fengyuanchen/viewer 下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dow ...
- Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据
在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...
- JQuery禁止回车提交表单
//禁止回车键提交表单——动态绑定 $(function(){ $("input").on('keypress', //所有input标签回车无效,当然,可以根据需求自定义 fu ...
- vulcanjs 核心架构概念
基于包的架构 为了保证系统的灵活以及可扩展,vulcanjs 使用基于包的架构设计,每一个功能都是一个包,可以方便的添加,移除 扩展.而不是修改 vulcan 的设计哲学是进行系统扩展,而不是编辑修改 ...