python标准库sys和OS的函数使用方法与实例详解

python标准库sys

sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互,如:python解释器。

sys模块的常见函数列表(import sys):

函数 说明
dir(sys) dir()方法查看模块中可用的方法。注意:如果是在编辑器,一定要注意要事先声明代码的编码方式,否则中文会乱码。
sys.argv 实现从程序外部向程序传递参数
sys.exit([arg]) 程序中间的退出,arg=0为正常退出
sys.getdefaultencoding() 获取系统当前编码,一般默认为ascii
sys.setdefaultencoding() 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行
reload(sys), 再执行setdefaultencoding(‘utf8'),将系统编码设置为utf8
sys.getfilesystemencoding() 获取文件系统编码方式,Windows下返回'mbcs',mac下返回'utf-8'
sys.path 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到
sys.platform 获取当前系统平台。
sys.stdin sys.stdoutsys.stderr stdin,stdout,以及stderr变量包含与标准I/O流对应的流对象。如果需要更好地控制输出,而print不能满足要求,它们就是你所需要的。你也可以替换它们,重定向输出和输入到其它设备(device),或者以非标准的方式处理它们。
sys.modules 是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快程序运行的速度。它拥有字典所拥有的一切方法。

python标准库os

os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口。

os模块的常见函数列表(import os):

函数-说明:

os.environ 一个dictionary 包含环境变量的映射关系

os.name 显示当前使用的平台

os.sep 显示当前平台下路径分隔符

os.linesep 给出当前平台使用的行终止符

os.remove(‘filename') 删除一个文件

os.rename(“oldname”,“newname”) 重命名文件

os.getcwd() 显示当前python脚本工作路径

os.chdir(dir) 改变当前目录,注意windows下用到转义

os.listdir(‘dirname') 返回指定目录下的所有文件和目录名

os.makedirs(‘dirname/dirname') 可生成多层递规目录

os.rmdir(‘dirname') 删除单级目录

os.getlogin() 得到用户登录名称

os.getenv(‘key') 得到环境变量配置

os.putenv(‘key') 设置环境变量

os.system() 运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell。

操作举例:

os.mkdir('/tmp/xx'),os.system("echo'hello' > /tmp/xx/a.txt"),os.listdir('/tmp/xx') 

os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt'),os.remove('/tmp/xx/b.txt'),os.rmdir('/tmp/xx')

用python编写一个简单的shell :

#!/usr/bin/python
import os, sys
cmd = sys.stdin.readline();
while cmd:
os.system(cmd);
cmd = sys.stdin.readline();

os.path

函数-说明:

os.path.abspath() 获取绝对路径os.path.abspath(“1.txt”) == os.path.join(os.getcwd(),“1.txt”)

os.path.split() 用于分开一个目录名称中的目录部分和文件名称部分。

os.pardir 表示当前平台下上一级目录的字符 …

os.path.join(path, name) 连接目录和文件名。

os.path.basename(path) 返回文件名

os.path.dirname(path) 返回文件路径

os.path.getctime("/root/1.txt") 返回1.txt的ctime(创建时间)时间戳

os.path.exists(os.getcwd()) 判断文件是否存在

os.path.isfile(os.getcwd()) 判断是否是文件名,1是0否

os.path.isdir(‘c:\Python\temp') 判断是否是目录,1是0否

os.path.islink('/home/111.sql') 是否是符号连接,windows下不可用

os.path.ismout(os.getcwd()) 是否是文件系统安装点,windows下不可用

os.path.samefile(os.getcwd(), ‘/home') 看看两个文件名是不是指的是同一个文件

os.walk() 能够把给定的目录下的所有目录和文件遍历出来。

os.path.walk('/home/huaying', test_fun, “a.c”) 遍历/home/huaying下所有子目录包括本目录,对于每个目录都会调用函数test_fun。

os.walk和os.path.walk的区别

函数声明:os.walk(top, topdown=True,None)

1、参数top表示需要遍历的顶级目录的路径。

2、参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。

3、参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。

返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。

函数声明:os.path.walk(top, func, arg)

1、参数top表示需要遍历的目录路径。

2、参数func表示回调函数,即对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务。注意:walk的回调函数必须提供三个参数:第1个参数为os.path.walk的参数arg,第2个参数表示目录dirname,第3个参数表示文件列表names。注意:os.path.walk的回调函数中的文件列表不和os.walk()那样将子目录和文件分开,而是混为了一谈,需要在回调函数中判断是文件还是子目录。

3、参数arg是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。回调函数的第1个参数就是用来接收这个传入的元组的。

过程:以top为根的目录树中的每一个目录(包含top自身,如果它是一个目录),以参数(arg, dirname, names)调用回调函数funct。参数dirname指定访问的目录,参数names列出在目录中的文件(从os.listdir(dirname)中得到)。回调函数可以修改names改变dirname下面访问的目录的设置,例如,避免访问树的某一部分。(由names关联的对象必须在合适的位置被修改,使用del或slice指派。)注意:符号连接到目录不被作为一个子目录处理,并且因此walk()将不访问它们。访问连接的目录必须以os.path.islink(file)和os.path.isdir(file)标识它们,并且必须调用walk()。

区别:os.path.walk()与os.walk()产生的文件名列表并不相同。os.walk()产生目录树下的目录路径和文件路径,而os.path.walk()只产生文件路径(是子目录与文件的混合列表)。

实例:

#coding=utf-8

importos
# 当前平台上一级目录字符..
print(os.path.pardir)
# os.path.abspath(__file__) :绝对路径
# 获取绝对路径(目录加当前文件名)
print(os.path.abspath(__file__))
# os.path.split(os.getcwd()) 用于分开一个目录名称中的目录部分和文件名称部分。
# 获取绝对目录(没有文件名)
print(os.getcwd());
print(os.path.split(os.path.abspath(__file__))[0]) # 目录
print(os.path.dirname(os.path.abspath(__file__)))# 等价于上一句
# 拼接文件目录和文件名
print(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.path.pardir) )
# 获取父目录
# 当前目录的路径名称,即父目录(os.path.dirname():显示当前路径,不会显示当前文件名)
print(os.path.dirname(os.getcwd()));
print(os.path.abspath(os.path.join(os.getcwd(), os.path.pardir)) )

更多关于python标准库sys和OS使用方法请查看下面的相关链接

(0)

相关推荐

  • python sys,os,time模块的使用(包括时间格式的各种转换)

    sys模块 sys.argv: 实现从程序外部向程序传递参数. 位置参数argv[0]代表py文件本身,运行方法 python xx.py 参数1,参数2 .. self = sys.argv[0] name = sys.argv[1] age = sys.argv[2] print self, name, age sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii. print sys.getdefaultencoding() sys.setdefaul

  • Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    本文实例讲述了Python3.5内置模块之os模块.sys模块.shutil模块用法.分享给大家供大家参考,具体如下: 1.os模块:提供对操作系统进行调用的接口 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.getcwd()) #获取当前的操作目录,即当前Python脚本工作的目录路径 #os.chdir("F:\\PythonCode\\day5\\test&quo

  • python中os和sys模块的区别与常用方法总结

    前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 官方解释: os: This module provides a portable way of using operating system dependent functionality. 翻译:提供一种方便的使用操作系统函数的方法. sys:This module provides access to some variables used or

  • python标准库os库的函数介绍

    OS库提供通用的,基本的操作系统交互功能. -OS库是Python标准库,包含几百个函数 -常用路径操作,进程管理,环境参数等几类 -路径操作: os.path子库,处理文件路径及信息 -进程管理:启动系统中其他程序 -环境参数:获得系统软硬件信息等环境参数 os.path子库以path为入口,用于操作和处理文件路径 import os.path import os.path as op os.path.abspath(path) #返回path在当前系统中的绝对路径 os.path.normp

  • Python常用模块sys,os,time,random功能与用法实例分析

    本文实例讲述了Python常用模块sys,os,time,random功能与用法.分享给大家供大家参考,具体如下: sys: 介绍:主要包含涉及python编译器与系统交互的函数. 常用函数: import sys print(sys.argv)#本文件名,已经运行该程序时的参数 #[如在命令窗口中python3 mysys.py 参数1 参数2] #那么参数1为sys.argv[1],以此类推 print(sys.version)#python版本号 print(sys.path)#返回模块的

  • 详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别 os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit().本文介绍这两种方式的区别和选择. os._exit()会直接将python程序终止,之后的所有代码都不会继续执行. sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那

  • python标准库sys和OS的函数使用方法与实例详解

    python标准库sys sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互,如:python解释器. sys模块的常见函数列表(import sys): 函数 说明 dir(sys) dir()方法查看模块中可用的方法.注意:如果是在编辑器,一定要注意要事先声明代码的编码方式,否则中文会乱码. sys.argv 实现从程序外部向程序传递参数 sys.exit([arg]) 程序中间的退出,arg=0为正常退出

  • python GUI库图形界面开发之PyQt5拖放控件实例详解

    本篇,我们学习PyQt5界面中拖放(Drag 和Drop)控件. 拖放动作 在GUI中,拖放指的是点击一个对象,并将其拖动到另一个对象上的动作.比如百度云PC客户端支持的拖放文件以快速移动文件: 拖放动作能够很直观很方便的在GUI程序中完成一些很复杂或繁琐的操作. 在PyQt中实现拖放 在PyQt5中,我们也可以很轻松地使用拖放功能. 使用Qt设计师或者使用API都可以实现.我们先使用Qt设计师将GUI的图形设计出来,在之前的GUI的基础上,我们新建一个选项卡. 我们新建了一个选项卡,然后在里面

  • Python标准库sys库常用功能详解

    目录 1.查看版本信息 2.四大实现详细信息 3.查看Python解释器的相关信息 3.设置python解释器信息 4.标准输入.输出和错误流 5.查看系统平台相关信息 6.其他 1.查看版本信息 # coding:utf-8 import sys # 获取 Python版本信息 print(sys.version) # 获取解释器中C的API版本 print(sys.api_version) # 获取Windows系统功能版本 print(sys.getwindowsversion()) #

  • python open函数中newline参数实例详解

    目录 问题的由来 具体实例 总结 问题的由来 我在读pythoncsv模块文档 看到了这样一句话 如果 csvfile 是文件对象,则打开它时应使用 newline=‘’.其备注:如果没有指定 newline=‘’,则嵌入引号中的换行符将无法正确解析,并且在写入时,使用 \r\n 换行的平台会有多余的 \r 写入.由于 csv 模块会执行自己的(通用)换行符处理,因此指定 newline=‘’ 应该总是安全的. 我就在思考open函数中的newline参数的作用,因为自己之前在使用open函数时

  • python用quad、dblquad实现一维二维积分的实例详解

    背景: python函数库scipy的quad.dblquad实现一维二维积分的范例.需要注意dblquad的积分顺序问题. 代码: import numpy as np from scipy import integrate def half_circle(x): """ 原心:(1,0),半径为1 半圆函数:(x-1)^2+y^2 = 1 """ return (1-(x-1)**2)**0.5 """ 梯形法求

  • JavaScript学习小结之被嫌弃的eval函数和with语句实例详解

    前面的话 eval和with经常被嫌弃,好像它们的存在就是错误.在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被斥为不规范,矫枉过正.那关于eval和with到底是什么情况呢?本文将详细介绍eval()函数和with语句 eval 定义 eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串 var result = eval('3+2'); console.log(result,typeof result)

  • Sql Server 开窗函数Over()的使用实例详解

    利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,'name3','P2',4 union all select 4,'name4

  • 对Python中DataFrame选择某列值为XX的行实例详解

    如下所示: #-*-coding:utf8-*- import pandas as pd all_data=pd.read_csv("E:/协和问答系统/SenLiu/熵测试数据.csv") #获取某一列值为xx的行的候选列数据 print(all_data) feature_data=all_data.iloc[:,[0,-1]][all_data[all_data.T.index[0]]=='青年'] print(feature_data) 实验结果如下: "C:\Pro

  • 一篇文章带你了解python标准库--sys模块

    目录 sys部分常用函数 1.sys.path函数用于获取模块文件搜索路径的字符串列表,或临时指定新的搜索路径 2.sys.platform为操作系统标识符判断函数 3.getwindowsversion()函数返回描述当前正在运行Windows版本信息的元组 总结 sys模块提供了与python解释器紧密相关的一些变量和函数. sys部分常用函数 函数 说明 path 获取模块文件搜索路径的字符串,或临时指定新搜索路径 platform 操作系统标识符判断函数 getwindowsversio

  • python词云库wordcloud的使用方法与实例详解

    wordcloud是优秀的词云展示第三方库 一.基本使用 import jieba import wordcloud txt = open("1.txt", "r", encoding='utf-8').read() words = jieba.lcut(txt) txt_1 = " ".join(words) # print(txt1) w = wordcloud.WordCloud(font_path="msyh.ttc"

随机推荐