当前位置:

首页 > 编程开发 > python中os模块和sys模块怎么使用

python中os模块和sys模块怎么使用

一、os模块os.getcwd()获取当前的工作目录os.chdir(‘绝对路径/相对于当前工作目录的路径’)改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir(r’D:\PythonScripts\test\c’),用r对\进行转义,第一层级必须使用双斜线,其他层级可以单斜线也可以双斜线,在linux和unix平台下用/分割os.curdir返回当前路径.os.pardir返回当前路径的上一层路径,即..os.mkdir(&

本文目录

    一、os模块

    os.getcwd() 获取当前的工作目录

    os.chdir(‘绝对路径/相对于当前工作目录的路径’) 改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir(r’D:\PythonScripts\test\c’),用r对\进行转义,第一层级必须使用双斜线,其他层级可以单斜线也可以双斜线,在linux和unix平台下用/分割

    • os.curdir  返回当前路径 .

    • os.pardir  返回当前路径的上一层路径,即 ..

    • os.mkdir('dir')  生成单级目录

    • os.makedirs(r'dir1\dir2') 创建递归目录,不加绝对路径表示在当前工作目录下创建

    • os.rmdir('dir')  删除单级空目录,如果目录不为空无法删除

    • os.removedirsr('dir1\dir2')  若目录为空则删除,并递归到上一层目录,若上一层为空也删除,以此类推

    • os.listdir(dir)  列出指定目录下的所有一级文件和目录,并以列表形式打印

    • os.remove('file')  删除一个文件

    • os.rename('oldname','newname')  重命名文件或目录

    • os.listdir('dir')以列表形式列出dir目录下所有的文件和目录

    • os.stat('file'/'dir')  获取文件/目录的大小,链接数,创建时间,上一次修改、访问时间等信息

    • os.sep  获取当前环境的分隔符

    • os.linesep  获取当前环境的换行符,windows下为/r/n,linux下为/n

    • os.pathsep  获取当前环境分割文件路径的字符串,windows下为;,linux下为:

    • os.name  获取当前使用平台,windows为nt,linux为posix

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

    • os.system(shell command)  运行shell命令,返回执行状态码,执行结果显示到屏幕

    • os.path.abspath(path)  返回绝对路径

    • os.path.split(path)  将path分割成目录和文件名的两个元素的元组

    • os.path.dirame(path)  返回path的目录,相当于os.path.split(path)的第一个元素

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

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

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

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

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

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

    • os.path.getatime(path)  获取path所指向的文件或者目录的最后访问时间

    • os.path.getmtime(path)  获取path所指向的文件或者目录的最后修改时间

    二、os模块中的os.walk()函数

    os.walk(‘path’)函数对于每个目录返回一个三元组,(dirpath, dirnames, filenames),

    第一个是路径,第二个是路径下面的目录,第三个是路径下面的文件

    如果加参数topdown=False则表示自下而上进行遍历,默认为topdown=True即自上而下进行遍历

    python中os模块和sys模块怎么使用

    #对于上述结构,os.walk()的结果为
    ['dir', ['dir1', 'dir2'], ['file1.txt', 'file2.txt']]
    ['dir\\dir1', ['dir11', 'dir12'], []]
    ['dir\\dir1\\dir11', [], ['file111.txt']]
    ['dir\\dir1\\dir12', [], []]
    ['dir\\dir2', ['dir21'], ['file21.txt']]
    ['dir\\dir2\\dir21', [], []]
    
    #可通过如下脚本验证
    import sys
    l=[]
    for root,dirs,files in os.walk('dir'):
        l.append(root)
        l.append(dirs)
        l.append(files)
        print(l)
        l=[]

    结果分析

    1.先以给定的目录作为根目录进行遍历,读取根目录的文件夹和文件

    2.以根目录下子目录为新的根目录进行遍历,读取其下面的文件夹和文件

    3.再以2中得到的子目录为根目录进行遍历,读取其下面的文件夹和文件

    4.重复3,直至所有子目录下面没有子目录和文件

    三、sys模块

    • sys.path 获取python PATH环境变量的值

    • sys.version 获取python解释器的版本

    • sys.exit(n) 在程序执行过程中退出程序,正常退出为exit(0)

    • sys.argv 返回的结果为一个列表且各元素都为字符串,第一个元素为当前执行文件的名称,后面的元素为执行文件时传入的参数,以空格分隔各参数,如果只有空格表示没有参数。

    [root@oldboy test]# cat argv.py 
    import sys
    print(sys.argv)
    [root@oldboy test]# python argv.py 
    ['argv.py']
    [root@oldboy test]# python argv.py 11 '22' [33,44] 'True' {1:'a'}#文件执行时传入的参数不能为元组,否则会报错
    ['argv.py', '11', '22', '[33,44]', 'True', '{1:a}']

    sys.stdout.write(‘str’) 向屏幕输出,不换行,相当于print,但是print(‘str’)是换行输出

    sys.stdout.flush( ) 将缓存输出到屏幕

    例如通过#逐步打印进度条

    import time,sys
    for i in range(20):
        sys.stdout.write('#')  #打印一个#,不换行
        time.sleep(0.1)  #睡0.1秒再输出下一个#
        sys.stdout.flush()  #将缓存中的#输出到屏幕,没有这一行系统会等到输出完毕再将缓存中的20个#输出到屏幕
    print('')

    解析文件执行时输入的参数:optparse模块

    import optparse
    class ArgvHandle():
        def __init__(self):
            self.op = optparse.OptionParser()
            self.op.add_option('-s','--server',dest = 'server')
            #,前面为文件执行时的输入,dest表示参数名。如果文件执行时带有-s或者--server,则形成参数名称为dest指定名称、参数值为-s或者--server后面紧跟着的内容
            self.op.add_option('-P','--port',dest = 'port')
            self.op.add_option('-u','--username',dest = 'username')
            self.op.add_option('-p','--passwort',dest = 'password')
            #学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078
    
            option,args = self.op.parse_args()
            print(type(option),type(args))
            print(option,args)           
           print(option.server,option.port,option.username,option.password)#通过.取参数名对应的值
    
    test = ArgvHandle()

    随意输入参数执行结果如下

    python中os模块和sys模块怎么使用

    可知op.parse_args()是将文件执行python mani.py后面的参数分割成两部分,一部分类似字典的形式(实际是一个对象),一部分是一个列表。

    如果匹配到add_option定义的参数形式,则将后面紧跟着的输入作为参数的值;未匹配到add_option定义的参数形式的其余输入被整理到一个列表中。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    Windows 安装 Python:从官方入口到虚拟环境的可复现实践
    Windows 安装 Python:从官方入口到虚拟环境的可复现实践

    面向后端开发者,基于 Python 官方文档说明如何在 Windows 上安装 Python、创建 venv 虚拟环境及使用 pip 管理依赖。包含可复制命令、验证方法及工具选择边界,避免常见配置误区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。