os.listdir

返回目录下所有的文件,包括文件和文件夹

例如:当前文件夹下为:

>>> import os
>>> os.listdir()
['Annotations', 'Images', 'splite_dataset.py', 'ImageSets']
>>>

也可以指定一个路径去获取内容

os.environ

>>> import os
>>> os.environ
environ({'CLUTTER_IM_MODULE': 'fcitx', 'COLORTERM': 'truecolor', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'DESKTOP_SESSION': 'deepin', 'DISPLAY': ':0', 'D_DISABLE_RT_SCREEN_SCALE': '1', 'D_DXCB_FORCE_OVERRIDE_HIDPI': '1', 'GDMSESSION': 'deepin', 'GIO_LAUNCHED_DESKTOP_FILE': '/usr/share/applications/deepin-terminal.desktop', 'VIRTUALENVWRAPPER_WORKON_CD': '1', 'VIRTUALENVWRAPPER_SCRIPT': '/home/ljk/.local/bin/virtualenvwrapper.sh', 'WORKON_HOME': '/home/ljk/.virtualenvs', 'VIRTUALENVWRAPPER_HOOK_DIR': '/home/ljk/.virtualenvs', 'VIRTUAL_ENV': '/home/ljk/.virtualenvs/ymir', 'PS1': '(ymir) %(?:%{\x1b[01;32m%}➜ :%{\x1b[01;31m%}➜ ) %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)', '_': '/home/ljk/.virtualenvs/ymir/bin/python'})
>>> os.environ.get("HOME")
'/home/ljk'
>>>

os.walk

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,所有目录,包括嵌套子目录都会被输出文件名。

walk()方法语法格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
  • top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
  1. root 所指的是当前正在遍历的这个文件夹的本身的地址
  2. dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
  3. files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
  • topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

  • onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。

followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

(ymir) ➜  zip_demo tree .
.
├── gt
│   ├── dd.txt
│   ├── hello.txt
│   └── one.txt
├── images
│   └── two.txt
└── zipfile_demo.py
In [3]: for dirpath, dirnames, filenames in os.walk("."):
...: print(f"{dirpath}---{dirnames}---{filenames}")
...:
.---['images', 'gt']---['zipfile_demo.py']
./images---[]---['two.txt']
./gt---[]---['dd.txt', 'hello.txt', 'one.txt']

os.rename

os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。

os.rename(src, dst)

参数说明:

  • src -- 要修改的文件或目录名
  • dst -- 修改后的文件或目录名
In [4]: ls
gt/ images/ zipfile_demo.py In [5]: os.rename("zipfile_demo.py", "zipfile_dst_demo.py") In [6]: ls
gt/ images/ zipfile_dst_demo.py

os.makedirs()

作用

用来创建多层目录(单层请用os.mkdir)

os.makedirs(name, mode=0o777, exist_ok=False)

参数说明:

  • name:你想创建的目录名
  • mode:要为目录设置的权限数字模式,默认的模式为 0o777 (八进制)。
  • exist_ok:是否在目录存在时触发异常。如果exist_ok为False(默认值),则在目标目录已存在的情况下触发FileExistsError异常;如果exist_ok为True,则在目标目录已存在的情况下不会触发FileExistsError异常。
In [7]: ls
gt/ images/ zipfile_dst_demo.py In [8]: In [8]: os.makedirs("make_dir_test/test", exist_ok=True) In [9]: ls
gt/ images/ make_dir_test/ zipfile_dst_demo.py In [10]: ls make_dir_test/test/ In [11]:

os.path

os.path.basename

返回路径中最后的文件名,path以/或\结尾,那么就会返回空值.

In [14]: path =  '/home/ljk/Desktop/zip_demo/zipfile_demo.py'
In [15]: os.path.basename(path)
Out[15]: 'zipfile_demo.py' In [16]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo'
In [17]: os.path.basename(path)
Out[17]: 'zipfile_demo' # 返回空值
In [18]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo/'
In [19]: os.path.basename(path)
Out[19]: '' In [20]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo.'
In [21]: os.path.basename(path)
Out[21]: 'zipfile_demo.'

os.path.dirname()

返回文件路径,即去掉文件名,返回目录。如果文件只有一层路径,返回空

In [24]: path =  '/home/ljk/Desktop/zip_demo/zipfile_demo.py'
In [25]: os.path.dirname(path)
Out[25]: '/home/ljk/Desktop/zip_demo' In [26]: path = 'zipfile_demo.py'
In [27]: os.path.dirname(path)
Out[27]: ''

os.path.splitext()

将对应路径的文件名和后缀名分割,注意是路径。分离之后有两部分:路径+后缀

In [26]: path =  'zipfile_demo.py'
In [29]: os.path.splitext(path)
Out[29]: ('zipfile_demo', '.py') In [30]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo.py'
In [31]: os.path.splitext(path)
Out[31]: ('/home/ljk/Desktop/zip_demo/zipfile_demo', '.py') In [32]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo'
In [33]: os.path.splitext(path)
Out[33]: ('/home/ljk/Desktop/zip_demo/zipfile_demo', '')

os.path.split

安装路径将路径和文件名分割开来。如果路径是以/结尾,则返回的文件名为空

In [34]: path =  '/home/ljk/Desktop/zip_demo/zipfile_demo.py'
In [35]: os.path.split(path)
Out[35]: ('/home/ljk/Desktop/zip_demo', 'zipfile_demo.py') In [36]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo'
In [37]: os.path.split(path)
Out[37]: ('/home/ljk/Desktop/zip_demo', 'zipfile_demo') In [38]: path = '/home/ljk/Desktop/zip_demo/zipfile_demo/'
In [39]: os.path.split(path)
Out[39]: ('/home/ljk/Desktop/zip_demo/zipfile_demo', '')

os.path.join

对路径中带路径分隔符的处理:

  1. 所有路径中都不带分隔符,默认按照参数顺序,并添加分隔符
In [40]: os.path.join("aa", "bb", "cc")
Out[40]: 'aa/bb/cc'
  1. 存在以分隔符开始的参数,从带分隔符的参数开始拼接,前面的参数丢弃。存在多个分隔符参数,以最后一个开始
In [45]: os.path.join("aa", "/bb", "cc")
Out[45]: '/bb/cc'
  1. 只存在以./开始的参数,按照参数顺序拼接。
In [46]: os.path.join("aa", "./bb", "cc")
Out[46]: 'aa/./bb/cc' In [48]: os.path.join("00", "aa", "./bb", "cc", "./dd")
Out[48]: '00/aa/./bb/cc/./dd'

python os模块 高频函数(未完待续)的更多相关文章

  1. Day4-内置函数--未完待续,慢慢写

    内置函数:https://docs.python.org/3/library/functions.html?highlight=built#ascii 未完待续....

  2. Python OS模块常用函数说明

    Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...

  3. python os模块进程函数

    Table of Contents 1. 系统进程 2. 举例 2.1. os.fork 2.2. os.exec 和 os.system 2.3. os.wait 3. 总结 系统进程 今天在看&l ...

  4. 【python测试开发栈】—帮你总结Python os模块高频使用的方法

    Python中的os模块是主要和系统操作相关的模块,在平时的工作中会经常用到,花时间整理了os模块的高频使用方法,同时整理出使用时需要注意的点.归纳来讲,os模块的方法可以分为:目录操作.文件操作.路 ...

  5. python os模块实用函数

    os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'pos ...

  6. Python入门_汇总_未完待续

    if/elseif/else for while break continue 多重循环 list [] duple() dict {} set {[]} 函数 help(abs) 查看abs函数的帮 ...

  7. Python os模块常用函数详解

    当前使用平台: os.name #返回当前使用平台的代表字符,Windows用'nt'表示,Linux用'posix'表示 当前路径和文件 os.getcwd() #返回当前工作目录 os.listd ...

  8. python os模块 常用函数

    os.getcwd() 获取当前工作目录 os.listdir() 返回指定目录下的所有文件和目录 os.remove() 删除单个文件 os.path.split() 以元祖形式返回一个路径的目录和 ...

  9. 【python】第一模块 步骤四 第二课、实现飞机大战(未完待续)

    第二课.实现飞机大战 一.项目介绍 项目实战:飞机大战 课程目标 掌握面向对象分析和开发的思想 能对项目进行拆分,进行模块化开发 了解项目开发的基本流程 理解并运用python的包.模块相关知识 理解 ...

  10. [python]爬代理ip v2.0(未完待续)

    爬代理ip 所有的代码都放到了我的github上面, HTTP代理常识 HTTP代理按匿名度可分为透明代理.匿名代理和高度匿名代理. 特别感谢:勤奋的小孩 在评论中指出我文章中的错误. REMOTE_ ...

随机推荐

  1. 又拍云+PicGo搭建图床教程

    具体搭建方法 https://blog.csdn.net/qq_41684621/article/details/114068076 这里有个细节 注意这里一定要加上 http:// 否则在自动生成 ...

  2. SMC

    记一次入门反调试技术 找到关键函数,先分析F5伪代码,发现了virtualprotect函数,联想到了SMC代码保护技术 但是到了后面分析发现分析不下去了,然后找了wp发现是代码反调试技术 然后细细看 ...

  3. 如何保证Spring Boot接口安全的呢?

    在保证Spring Boot接口安全时,我们需要关注的主要方面包括:认证(Authentication).授权(Authorization).数据安全性(Data Security).以及防止常见的W ...

  4. MySQL-mysqldump 报错:[ERROR] unknown variable 'local_infile=1'.

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin mysqldump: [ERROR] unknown variable 'local_infile=1'. 解决方法: ...

  5. 【结对作业】第一周 | 学习体会day01

    周一老师布置了小组结对作业,内容如下: 我们今天实现了数据库的建立,页面的设计,以及前后端查询的操作,具体实现如下

  6. 30分钟带你精通git使用

    非常抱歉,由于篇幅和时间限制,无法在30分钟内提供3000字左右的详细git使用介绍. Git是一个强大的版本控制系统,学习使用它需要一定的时间和实践.以下是一个简要的Git使用指南,帮助您入门并进行 ...

  7. 又有新框架上线了,测试、AI 通通有「GitHub 热点速览」

    本周热点之一可能就是 Apple 刚开源便获得 8k+ star 的机器学习框架 mlx,顺带官方开源的 mlx-example(示例仓)也在热门榜上有一席之位,据说它已经跑通了大模型 Llama 7 ...

  8. 找到了!GitHub Copilot的最佳免费平替

    在如今这个人工智能高速发展的时代,每个行业都在被AI技术影响而改变.层出不穷的AI辅助工具,让我们看到了机器正在取代一部分基础的日常工作.对于我们开发者而言,当前最炙手可热的就是GitHub Copi ...

  9. 如何通过port-forward命令在本地访问 k8s 集群服务

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享 概述 在我们访问k8s中的pod服务时,一般通过node port映射pod端口进行访问,还有一种是通过ingress或者i ...

  10. 解决 IDEA 报错ERROR:JAVA: 无效的源发行版: 11

    解决 IDEA 报错ERROR:JAVA: 无效的源发行版: 11 原因 一般都是创建工程的时候 一路next 默认选择了 Java Version 11, 而本地的jdk版本是 8 解决 File ...