Python模块知识6:OS、SYS模块

原创 2018年01月01日 00:00:00

1、os模块,和系统相关的,比如获取路径、目录、文件夹之类

常用方法:

  • os.getcwd() #获取当前工作目录,即当前Python脚本工作的目录路径

  • os.rename('oldname','new')#重命名文件/目录

  • os.path.abspath(path) #返回path规范化的绝对路径,含文件名的

  • os.path.dirname(path) #获取文件所在的文件夹名称

  • os.chdir("dirname") #改变当前脚本的工作目录,相当于shell下的cd

  • os.path.join(path1[,path2[,...]])#将多个路径组合返回,第一个绝对路径之前的参数将被忽略

  • os.curdir #返回当前目录:('.')

  • os.pardir #获取当前目录的父目录字符串名('..')

  • os.makedirs('dir1/dir2')#可生产多层递归目录

  • os.removedirs('dirname1')#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,以此类推

  • os.mkdir('dirname')#生成单级目录,相当于shell中的mkdir dirname

  • os.rmdir('dirname')#删除单级空目录,若目录不为空,则无法删除,报错,相当于shell中的rmdir dirname

  • os.listdir('dirname')#列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

  • os.remove()#删除一个文件,

  • os.stat('path/filename')#获取文件/目录信息

  • os.sep 操作系统特定的路径分隔符,win下为"\\",linux下为"/"

  • os.linesep #当前平台使用的行中支付,win下为"\t\n",Linux下为"/n"

  • os.pathsep#用于分隔文件路径的字符串

  • os.name #字符串只是当前使用平台,win->'nt';Linux->'posix'

  • os.system("bash command")#运行shell命令,直接显示

  • os.environ#获取系统环境变量

  • os.path.split(path)#将path分割成目录和文件名二元组返回

  • os.path.basename(path)#返回path最后的文件名,如何path以/或\结尾,那么就会返回空值,即os.path.split(path)第二个元素

  • os.path.exists(path) #如果path存在,返回True,如果path不存在,则返回False

  • os.path.isabs(path)#如果path是绝对路径,返回True

  • os.path.isfile(path)#如果path是一个存在的文件,返回True,否则返回False

  • os.path.isdir(path)#如果path是一个存在的目录,则返回True,否则返回False

  • os.path.getatime(path)#返回path所指向的文件或者目录最后存取的时间


用法案例:

案例1:分别获取绝对路径和文件夹

import os
print(os.getcwd())#C:\Users\huhuanhuan\PycharmProjects\study2017
print(os.path.abspath(__file__))#方法1获取文件的绝对路径C:\Users\huhuanhuan\PycharmProjects\study2017\s1.py
print(os.path.abspath("s2.py"))#方法2获取文件的绝对路径C:\Users\huhuanhuan\PycharmProjects\study2017\s2.py
print(os.path.dirname(os.path.abspath(__file__)))#获取文件所在的文件夹C:\Users\huhuanhuan\PycharmProjects\study2017
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#C:\Users\huhuanhuan\PycharmProjects

效果:

0?wx_fmt=png

案例2:获取绝对路径和上级文件夹

import os
base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
print (base_dir)

效果:

0?wx_fmt=png

案例3:程序中常和sys结合使用,自动添加目录

0?wx_fmt=png

案例4:os.rename('oldname','new')#重命名文件/目录

如果和程序在同一个目录,可以直接写文件名,如果不在同一目录,需要制定详细的路径。

0?wx_fmt=png


案例5:os.chdir("dirname") 改变当前脚本的工作目录,相当于shell下的cd

0?wx_fmt=png


2、SYS模块

    sys模块则是python程序用来请求解释器行为的接口。比如关于调试类的(trace, frames,except)等,profiling类(stats, getsizeof),运行时环境类(python path, stderr, stdout),解释器本身(如version)。inspect某种程度上可以看成是在sys提供的功能上的一个包装。


案例1:命令行参数List,第一个元素是程序本身路径,sys.argv[0]为脚本名称

import sys

print(sys.argv)

结果:

['C:/Users/.../PycharmProjects/study2017/s2.py']


案例2:返回python解释程序的版本信息

print(sys.version)

3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]


案例3:模块查找目录优先级。

sys.path是python的搜索模块的路径集,是一个list

import sys
for item in sys.path:
print(item)

查找优先级:

0?wx_fmt=png

案例4:假设s2不在系统的目录,则可以先添加,再导入s2文件:

import sys
sys.path.append('D:\\')#导入D盘文件夹
import s2#文件名

使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!


如果需要更好地控制输出,而print 不能满足你的要求,则可使用标准的写入写出的功能;sys.stdout.write(),sys.stdout.flush()。

案例5:进度条案例:会显示1%一直变到100%

import time
import sys
def view_bar(num,total):
rate=num/total
rate_num=int(rate*100)
#d='\r%d%%'%(rate_num,)#\r代表重新回到当前行的首个位置,需要和时间停留配合使用,要么时针会有错,显示为一直变的数字,如17%
   
d='\r%s>%d%%'%("="*num,rate_num)#如果是此语句,则显示方式可以为=================>17%
 
sys.stdout.write(d)
sys.stdout.flush()

if __name__=='__main__':
for i in range(0,101):
time.sleep(0.5)
view_bar(i,100)

效果:

0?wx_fmt=png

一直到100%

0?wx_fmt=png


版权声明:本文为博主原创文章,未经博主允许不得转载。

Python中os与sys两模块的区别

os与sys模块的官方解释如下: os: This module provides a portable way of using operating system dependent functio...
  • liu5257
  • liu5257
  • 2016年12月19日 15:01
  • 5903

os模块与sys模块

一、标准库标准库是Python安装的时候,系统自动安装的,里面拥有大量系统自带的功能强大的模块。sys模块: sys模块主要处理系统相关的功能。argv[value]:接收命令行的参数。例如,win...
  • xsj_blog
  • xsj_blog
  • 2016年06月23日 22:29
  • 1021

Python sys模块(进阶篇)

Python sys模块(进阶篇)
  • sxingming
  • sxingming
  • 2016年08月22日 11:37
  • 1711

python模块-系统模块sys

http://blog.csdn.net/pipisorry/article/details/42167683 Python的系统模块包括:sys, os, glob, socket, thread...
  • pipisorry
  • pipisorry
  • 2014年12月26日 09:39
  • 8215

Python3.5——内置模块详解之os模块、sys模块、shutil模块

1、os模块:提供对操作系统进行调用的接口
  • loveliuzz
  • loveliuzz
  • 2017年09月28日 20:57
  • 258

Python sys模块常用方法 (六)

这个模块在处理编码和输入参数以及从定向输入输出的时候用的比较多。只记录一下自己用到的或者见到比较多的: import sys sys.argv #允许脚本...
  • xhw88398569
  • xhw88398569
  • 2015年09月17日 22:48
  • 473

python模块-os,sys

os,sys用法
  • qq_27163197
  • qq_27163197
  • 2017年10月16日 23:57
  • 74

python中的Sys模块

Sys模块函数之多,我只能选取自己认为比较实用的一些函数列在此处。借马云找员工的说法,”找最合适的而不是最天才的”,这句话,我个人觉得在很多方面都能适应,学习也不在话下。Sys模块功能的确很多,但我们...
  • cnmilan
  • cnmilan
  • 2013年03月26日 14:58
  • 1225

python os模块与input操作

我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数。想要知道有哪些方法,我们可以运行下面的语句,就可以在屏幕上输出os模块的所有信息:  >...
  • billderlin1989
  • billderlin1989
  • 2014年10月23日 11:21
  • 143

python中sys模块的用法大全

sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称...
  • u013176681
  • u013176681
  • 2016年12月13日 11:15
  • 1258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python模块知识6:OS、SYS模块
举报原因:
原因补充:

(最多只允许输入30个字)