python中os与sys作用与区别

OS模块

在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法。网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用。

#OS模块

#os模块就是对操作系统进行操作,使用该模块必须先导入模块:
import os

#getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
result = os.getcwd()
print(result)

#chdir()改变当前工作目录
os.chdir(‘/home/sy‘)
result = os.getcwd()
print(result)

open(‘02.txt‘,‘w‘)

#操作时如果书写完整的路径则不需要考虑默认工作目录的问题,按照实际书写路径操作
open(‘/home/sy/下载/02.txt‘,‘w‘)

#listdir() 获取指定文件夹中所有内容的名称列表
result = os.listdir(‘/home/sy‘)
print(result)

#mkdir()  创建文件夹
#os.mkdir(‘girls‘)
#os.mkdir(‘boys‘,0o777)

#makedirs()  递归创建文件夹
#os.makedirs(‘/home/sy/a/b/c/d‘)

#rmdir() 删除空目录
#os.rmdir(‘girls‘)

#removedirs 递归删除文件夹  必须都是空目录
#os.removedirs(‘/home/sy/a/b/c/d‘)

#rename() 文件或文件夹重命名
#os.rename(‘/home/sy/a‘,‘/home/sy/alibaba‘
#os.rename(‘02.txt‘,‘002.txt‘)

#stat() 获取文件或者文件夹的信息
#result = os.stat(‘/home/sy/PycharmProject/Python3/10.27/01.py)
#print(result)

#system() 执行系统命令(危险函数)
#result = os.system(‘ls -al‘)  #获取隐藏文件
#print(result)

#环境变量
‘‘‘
环境变量就是一些命令的集合
操作系统的环境变量就是操作系统在执行系统命令时搜索命令的目录的集合
‘‘‘
#getenv() 获取系统的环境变量
result = os.getenv(‘PATH‘)
print(result.split(‘:‘))

#putenv() 将一个目录添加到环境变量中(临时增加仅对当前脚本有效)
#os.putenv(‘PATH‘,‘/home/sy/下载‘)
#os.system(‘syls‘)

#exit() 退出终端的命令

#os模块中的常用值
#curdir  表示当前文件夹   .表示当前文件夹  一般情况下可以省略
print(os.curdir)

#pardir  表示上一层文件夹   ..表示上一层文件夹  不可省略!
print(os.pardir)

#os.mkdir(‘../../../man‘)#相对路径  从当前目录开始查找
#os.mkdir(‘/home/sy/man1‘)#绝对路径  从根目录开始查找

#name 获取代表操作系统的名称字符串
print(os.name) #posix -> linux或者unix系统  nt -> window系统

#sep 获取系统路径间隔符号  window ->\    linux ->/
print(os.sep)

#extsep 获取文件名称和后缀之间的间隔符号  window & linux -> .
print(os.extsep)

#linesep  获取操作系统的换行符号  window -> \r\n  linux/unix -> \n
print(repr(os.linesep))

#导入os模块
import os

#以下内容都是os.path子模块中的内容

#abspath()  将相对路径转化为绝对路径
path = ‘./boys‘#相对
result = os.path.abspath(path)
print(result)

#dirname()  获取完整路径当中的目录部分  &  basename()获取完整路径当中的主体部分
path = ‘/home/sy/boys‘
result = os.path.dirname(path)
print(result)

result = os.path.basename(path)
print(result)

#split() 将一个完整的路径切割成目录部分和主体部分
path = ‘/home/sy/boys‘
result = os.path.split(path)
print(result)

#join() 将2个路径合并成一个
var1 = ‘/home/sy‘
var2 = ‘000.py‘
result = os.path.join(var1,var2)
print(result)

#splitext() 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀
path = ‘/home/sy/000.py‘
result = os.path.splitext(path)
print(result)

#getsize()  获取文件的大小
#path = ‘/home/sy/000.py‘
#result = os.path.getsize(path)
#print(result)

#isfile() 检测是否是文件
path = ‘/home/sy/000.py‘
result = os.path.isfile(path)
print(result)

#isdir()  检测是否是文件夹
result = os.path.isdir(path)
print(result)

#islink() 检测是否是链接
path = ‘/initrd.img.old‘
result = os.path.islink(path)
print(result)

#getctime() 获取文件的创建时间 get create time
#getmtime() 获取文件的修改时间 get modify time
#getatime() 获取文件的访问时间 get active time

import time

filepath = ‘/home/sy/下载/chls‘

result = os.path.getctime(filepath)
print(time.ctime(result))

result = os.path.getmtime(filepath)
print(time.ctime(result))

result = os.path.getatime(filepath)
print(time.ctime(result))

#exists() 检测某个路径是否真实存在
filepath = ‘/home/sy/下载/chls‘
result = os.path.exists(filepath)
print(result)

#isabs() 检测一个路径是否是绝对路径
path = ‘/boys‘
result = os.path.isabs(path)
print(result)

#samefile() 检测2个路径是否是同一个文件
path1 = ‘/home/sy/下载/001‘
path2 = ‘../../../下载/001‘
result = os.path.samefile(path1,path2)
print(result)

#os.environ 用于获取和设置系统环境变量的内置值
import os
#获取系统环境变量  getenv() 效果
print(os.environ[‘PATH‘])

#设置系统环境变量 putenv()
os.environ[‘PATH‘] += ‘:/home/sy/下载‘
os.system(‘chls‘)

SYS模块

该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用

#!/usr/bin/env python
# coding=utf-8
__author__ = ‘Luzhuo‘
__date__ = ‘2017/5/8‘
# sys_demo.py sys解释器相关函数
# 该模块含有解释器的一些变量,与解释器交互的函数

import sys

def sys_demo():
    # 默认编码
    print(sys.getdefaultencoding())

    # Python版本
    print(sys.version)

    # 添加模块路径到搜索路径
    sys.path.append("./module")

    # (函数)打印异常信息
    try:
        1 / 0
    except:
        types, value, back = sys.exc_info()  # 捕获异常
        sys.excepthook(types, value, back)  # 打印异常

    # 输入和输出
    sys.stdout.write(">> ")
    sys.stdout.flush()
    strs = sys.stdin.readline()[:-1]
    sys.stderr.write("输入的内容为: {}".format(strs))
    sys.stderr.flush()

def sys_func():
    lists = sys.argv  # 传递给Python脚本的命令行参数列表 => python p.py -> [‘p.py‘] / python p.py a 1 -> [‘p.py‘, ‘a‘, ‘1‘] / 程序内执行 -> [‘‘]
    strs = sys.getdefaultencoding()  # 默认字符集名称
    strs = sys.getfilesystemencoding()  # 系统文件名字符集名称
    num = sys.getrefcount(object)  # 返回object的引用计数(比实际多1个)
    dicts = sys.modules  # 已加载的模块, 可修改, 但不能通过修改返回的字典进行修改
    lists = sys.path  # 模块搜索路径
    sys.path.append("./test")  # 动态添加模块搜索路径
    strs = sys.platform  # 平台标识符(系统身份进行详细的检查,推荐使用) Linux:‘linux‘ / Windows:‘win32‘ / Cygwin:‘cygwin‘ / Mac OS X:‘darwin‘
    strs = sys.version  # python解释器版本
    lists = sys.thread_info  # 线程信息
    num = sys.api_version  # 解释器C API版本

    types, value, back = sys.exc_info()  # 捕获异常 详见 异常 文章的 excep() 代码块第二小部分(http://blog.csdn.net/rozol/article/details/69313164)
    sys.excepthook(types, value, back)  # 打印异常
    types = sys.last_type
    value = sys.last_value
    back = sys.last_traceback
    # sys.exit([arg]) // 引发SystemExit异常退出Python(可以try), 范围[0,127], None==0, "string"==1
    sys.exit(0)

    num = sys.getrecursionlimit()  # 最大递归数(堆栈最大深度), 详见 函数 文章(http://blog.csdn.net/rozol/article/details/69242050)
    sys.setrecursionlimit(5000)  # 修改最大递归数

    fnum = sys.getswitchinterval()  # 获取线程切换间隔
    sys.setswitchinterval(0.005)  # 设置线程切换间隔, 单位秒
    num = sys.getcheckinterval()  # 解释器的检查间隔
    sys.setcheckinterval(100)  # 设置解释器检查间隔, 执行(默认)100个虚拟指令执行一次检查, 值为<=0时,检查每个虚拟指令

    # sys.stdin // 标准输入流
    strs = sys.stdin.readline()[:-1]
    # sys.stdout // 标准出入输出
    sys.stdout.write(">>")
    sys.stdout.flush()
    # sys.stderr // 标注错误流
    sys.stderr.write(">>")

    # ---

    lists = sys.builtin_module_names  # 所有模块 (注:非导入模块)
    path = sys.base_exec_prefix  # Python安装路径
    path = sys.base_prefix  # 同base_exec_prefix
    path = sys.exec_prefix  # 同base_exec_prefix
    path = sys.prefix  # 同base_exec_prefix
    path = sys.executable  # Python解释器的绝对路径

    strs = ys.byteorder  # 本机字节顺序指示器, big-endian(最高有效字节在第一位)值为‘big‘, little-endian(最低有效字节在第一位)值为‘little‘
    strs = sys.copyright  # python版权
    num = sys.hexversion  # 16进制版本号
    lists = sys.implementation  # 当前运行的解释器的信息
    num = sys.getallocatedblocks()  # 解释器当前分配的内存块的数量
    boolean = sys.dont_write_bytecode  # 是否不会尝试导入源模块是写入.pyc文件 (False会写入.pyc文件)
    # sys.getsizeof(object[, default]) // 返回对象的大小bit, 只计算自身内存消耗,不计算引用对象的内存消耗, 调用对象的__sizeof__(), default没有获取到默认返回值
    num = sys.getsizeof(object)
    boolean = sys.is_finalizing()  # 解释器是否正在被关机
    num = sys.maxsize  # 最大整数值(2 ** 31 -1), 与系统有关
    num = sys.maxunicode  # 最大Unicode值的整数 (1114111)
    strs = sys.ps1  # 解释器主提示符
    strs = sys.ps2  # 解释器次提示符

    sys.call_tracing(func, ("arg",))  # 调用函数
    sys._clear_type_cache()  # 清除内部类型缓存
    sys._debugmallocstats()  # 打印CPython内存分配器状态的低级信息

    sys.setprofile(profilefunc)  # 设置profile函数, 默认None
    sys.getprofile()  # 获取profile函数
    sys.settrace(tracefunc)  # 设置跟踪函数, def tracefunc(frame、event 和arg):
    sys.gettrace()  # 获取跟踪函数, 默认None
    sys.set_coroutine_wrapper(wrapper)  # 设置包装 def wrapper(coro):
    sys.get_coroutine_wrapper()  # 包装, 默认None

if __name__ == "__main__":
    sys_demo()

    # sys_func()

原文地址:https://www.cnblogs.com/cloak/p/11237285.html

时间: 2024-09-26 19:55:57

python中os与sys作用与区别的相关文章

Python中os与sys模块的区别

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 maintained by the interpreter and to functions that intera

Python中os与sys两模块的区别

转载文章 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 maintained by the interpreter and to functions that i

Python中 os 与 sys 模块

<span style="font-size:18px;">os和sys模块 python常见模块命令 一.OS Python的标准库中的OS模块主要涉及普遍的操作系统功能.可以在Linux和Windows下运行,与平台无关. os.sep 可以取代操作系统特定的路径分割符. os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd()函数得到当前工作目录,即当前Python脚本

python之os和sys模块的区别

一.os模块 os模块是Python标准库中提供的与操作系统交互的模块,提供了访问操作系统底层的接口,里面有很多操作系统的函数 1.os常用方法 import os # print(os.getcwd())#获取当前目录 print(os.chdir(r"D:\program\python\code\LYH_python\Day5"))#切换进入到哪个目录下 os.rename('users.xls','pass.xls')#os.rename(old,new)将old文件重命名为ne

Python中os和sys模块中常用的方法

os模块 os模块:该模块提供了一些方便使用操作系统相关功能的函数 os.remove() 删除文件 os.rename() 重命名文件 os.walk() 文件目录遍历器 os.chdir() 改变目录 os.mkdir/mkdirs 创建目录/多层目录 os.rmdir/removedirs 删除目录/多层目录 os.listdir() 列出指定目录的文件 os.getcwd() 取得当前工作目录 os.chmod() 改变目录权限 os.path.basename() 去掉目录的路径,返回

python中os和sys模块的详解

平时在工作中经常会用到os模块和sys模块的一些特性,下面是这些特性的一些相关解释,希望对大家有所帮助 os模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.rem

Python中os和sys模块

系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象. sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a sys.exit(exit_code) 退出程序 sys.modules 是一个dictionary,表示系统中所有可用的module sys.platform

python中os模块中文帮助

python中os模块中文帮助 python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:http://butlandblog.appspot.com/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵. 这个模块提供了一个轻便的方法使用要依赖操作系统的功能. 如何你只是想读或写文件,请使用open() ,如果你想

FAQ: Python中if __name__ == &#39;__main__&#39;:作用

#hello.pydef sayHello(): str="hello" print(str); if __name__ == "__main__": print ('This is main of module "hello.py"') sayHello() python作为一种脚本语言,我们用python写的各个module都可以包含以上那么一个类似c中的main函数,只不过python中的这种__main__与c中有一些区别,主要体现在: