[python入门(53)] - python中的OS模块(包) - 2

news2024/9/29 17:57:51

目录

❤  OS模块和path模块(函数)

❤  os模块中操作目录以及文件的函数

❤  os模块中遍历目录数

❤  一些表现形式参数

❤  获取在进程的控制终端上登录的用户的名称: os.getlogin() (即此时pc登录的用户名)

❤  总结

❤  os.listdir()与os.walk()两种方式获取文件路径与文件目录下所有子目录和文件的区别

❤  例子1:在一个目录下面只有文件时可以使用 os.listdir() 函数

❤  实例2:当一个目录下面既有文件又有目录(文件夹),可使用 os.walk() 函数读取里面所有文件


❤  OS模块和path模块(函数)

❤  os模块中操作目录以及文件的函数

os.mkdir('文件夹名') :新建文件夹;入参为目录路径,不可为文件路径;(父目录必须存在的情况下创建下一级文件夹)

 os.rmdir('文件夹名') :删除文件夹;入参为目录路径,不可为文件路径

 os.remove('文件路径') :删除文件;入参为文件路径,不可为目录路径

 os.makedirs('路径及文件') :递归新建文件夹;可以连续创建该文件夹的多级目录

 os.path.isdir('路径') :判断入参路径是否为文件夹,返回值为布尔值;是文件夹返回True,不是文件夹返回False

 os.path.isfile('路径') :判断入参路径是否为文件,返回值为布尔值;是文件返回True,不是文件返回False

❤  os模块中遍历目录数

一个遍历目录数的函数,它以一种深度优先的策略(depth-first)访问指定的目录 

os.walk(top=path,topdown=True,oneerror=None) 
  • 参数 top 表示需要遍历的目录树的路径。
  • 参数 topdown 默认为 True ,表示首先返回根目录树下的文件,然后,再遍历目录树的子目录。 当topdown 的值为 False 时,则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件
  • 参数 oneerror 的默认值为 None ,表示忽略文件遍历时产生的错误;如果不为空,则提供一个自定义函数提示错误信息,后边遍历抛出异常。

 os.walk() 函数的返回值是一个生成器(generator),每次遍历的对象都是返回的是一个三元组 (root,dirs,files):该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表。

  •  root 代表当前遍历的目录路径,string类型
  •  dirs 代表root路径下的所有子目录名称list类型,列表中的每个元素是string类型,代表子目录名称
  •  files 代表root路径下的所有子文件名称list类型,列表中的每个元素是string类型,代表子文件名称

当前目录:

 

import os
from os.path import join

home_path = "/home"
for (root, dirs, files) in os.walk(home_path):
    print(root)
    print(dirs)
    print(files)
    print("=" * 50)

输出:

/home
['root', 'zhang', 'li']
['test.txt', 'hai.mp4']
==================================================
/home/root
[]
['1.txt', '2.txt', '3.txt']
==================================================
/hoome/zhang
[]
['zhang_1.mp4', 'zhang_2.mp4', 'zhang_3.mp4']
==================================================
/home/li
[]
[]
==================================================

 一共三行:
第1行代表当前遍历的目录,我们称为root目录,
第2行代表root目录下的子目录列表,我们称为dirs子目录列表,
第3行代表root目录下的子文件列表,我们称为files子文件列表,
注意:上面的列表为空就代表当前遍历的root目录下没有子目录或者没有子文件

例子:遍历home目录下获取所有的目录和文件的绝对路径

import os
from os.path import join

home_path = "/home"
for (root, dirs, files) in os.walk(home_path):
    for dir in dirs:
        print(join(root, dir))
    for file in files:
        print(join(root, file))

输出:

/home
/home/root
/home/zhang
/home/li
/home/test.txt
/home/hai.mp4
/home/root/1.txt
/home/root/2.txt
/home/root/3.txt
/home/zhang/zhang_1.mp4
/home/zhang/zhang_2.mp4
/home/zhang/zhang_3.mp4

例子:

import os
def walk(path):
  if not os.path.exists(path):
    return -1
  for root,dirs,names in os.walk(path):
    for filename in names:
      print(os.path.join(root,filename)) # 路径和文件名连接构成完整路径
if __name__=='__main__':
  path = "C:\\Users\\Administrator\\Desktop\\2017-9-1"
  walk(path)

 输出:

C:\Users\Administrator\Desktop\2017-9-1\2017-9-1.txt
C:\Users\Administrator\Desktop\2017-9-1\2017-9-1storage.txt
C:\Users\Administrator\Desktop\2017-9-1\apk.conf
C:\Users\Administrator\Desktop\2017-9-1\数据采集导入质量统计_2017-09-01.docx
C:\Users\Administrator\Desktop\2017-9-1\test1\2017-9-1.txt
C:\Users\Administrator\Desktop\2017-9-1\test2\2017-9-1.txt

❤  一些表现形式参数

os模块中还定义了一组文件、路径在不同操作系统中的表现形式参数。如下:

os.sep  #  '\\'

os.extsep  #  '.'

os.pathsep  #  ';'

os.linesep  #  '\r\n'

 ❤  获取在进程的控制终端上登录的用户的名称: os.getlogin() (即此时pc登录的用户名)

参数:不需要参数

返回类型:此方法返回一个字符串,该字符串表示在进程的控制终端上登录的用户的名称。

# Python program to explain os.getlogin() method  

# importing os module  
import os

# Get the name of the user 
# logged in on the controlling  
# terminal of the process. 
user = os.getlogin()

# Print the name of the user
# logged in on the controlling  
# terminal of the process. 
print(user)

输出:

text

❤  总结

# python--函数 os.sep :主要用于系统路径中的分隔符
# Windows系统通过是“\\”,Linux类系统如Ubuntu的分隔符是“/”,而苹果Mac OS系统中是“:”

# 常用的os模块命令:
# 1、os.name——name顾名思义就是'名字',这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux 返回'posix'。注意该命令不带括号。
# 2、os.getcwd()——全称应该是'get current work directory',获取当前工作的目录
# 3、os.listdir(path)——列出path目录下所有的文件和目录名。Path参数可以省略。
# 4、os.remove(path)——删除path指定的文件,该参数不能省略。
# 5、os.rmdir(path)——删除path指定的目录,该参数不能省略。
# 6、os.mkdir(path)——创建path指定的目录,该参数不能省略。
# 7、os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误

# os.remove()       #删除文件
# os.rename()       #重命名文件
# os.walk()       #生成目录树下的所有文件名
# os.chdir()       #改变目录
# os.mkdir/makedirs()     #创建目录/多层目录
# os.rmdir/removedirs     #删除目录/多层目录
# os.listdir()       #列出指定目录的文件
# os.getcwd()       #取得当前工作目录
# os.chmod()       #改变目录权限
# os.path.basename()     #去掉目录路径,返回文件名
# os.path.dirname()     #去掉文件名,返回目录路径
# os.path.join()      #将分离的各部分组合成一个路径名
# os.path.split()      #返回(dirname(),basename())元组
# os.path.splitext()     #返回filename,extension)元组
# os.path.getatime\ctime\mtime   #分别返回最近访问、创建、修改时间
# os.path.getsize()     #返回文件大小
# os.path.exists()      #是否存在
# os.path.isabs()      #是否为绝对路径
# os.path.isdir()      #是否为目录
# os.path.isfile()      #是否为文件
# os.system('command') 会执行括号中的命令,如果命令成功执行,这条语句返回0,否则返回1

❤  os.listdir()与os.walk()两种方式获取文件路径与文件目录下所有子目录和文件的区别

❤  例子1:在一个目录下面只有文件时可以使用 os.listdir() 函数

test_file文件夹中包含三个文件:

test_file:
         test1.txt
         test2.txt
         test3.txt

获取该目录下的每个文件的绝对路径:

import os

path = r'C:\Users\XXN\Desktop\test_file'

for each_file in os.listdir(path):

    print(os.path.join(path,each_file))

 输出:

C:\Users\XXN\Desktop\test_file\test1.txt
C:\Users\XXN\Desktop\test_file\test2.txt
C:\Users\XXN\Desktop\test_file\test3.txt

❤  实例2:当一个目录下面既有文件又有目录(文件夹),可使用 os.walk() 函数读取里面所有文件

test_file中既包含文件也包含文件夹:

Test_file:
        file1:
             test1.txt
             test2.txt
             test3.txt
        file2:
             test1.txt
             test2.txt
             test3.txt
        test1.txt
        test2.txt
        test3.txt 

import os

path = r'C:\Users\XXN\Desktop\test_file'

for parent,dirnames,filenames in os.walk(path):

     print(parent,dirnames,filenames)

 输出:

C:\Users\XXN\Desktop\test_file ['file1', 'file2'] ['test1.txt', 'test2.txt', 'test3.txt']
C:\Users\XXN\Desktop\test_file\file1 [] ['test1.txt', 'test2.txt', 'test3.txt']
C:\Users\XXN\Desktop\test_file\file2 [] ['test1.txt', 'test2.txt', 'test3.txt']

  • parent:列出了目录路径下面所有存在的目录的名称
  • dirnames:文件夹名
  • filenames:列出了目录路径下面所有文件的名称

获得给定路径下所有的文件路径:

import os

path = r'C:\Users\XXN\Desktop\test_file'

for parent,dirnames,filenames in os.walk(path):

for filename in filenames:

    print(os.path.join(parent,filename))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381067.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3月4日线下讲座《项目经理五项管理锦囊》

在项目管理过程中,你是否有过因为人际关系紧张,而导致团队协作不顺畅? 项目团队内耗严重,成员之间缺乏信任冲突较多,影响士气项目质量及项目周期等问题? 为什么会导致这样的结果?如何避免踩坑&a…

TAS5411QPWPRQ1引脚图LP873220RHDRQ1汽车应用开关稳压器

8W单声道汽车类D类音频放大器:TAS5411QPWPRQ1引脚图 【概述】TAS5411-Q1是一款单声道D类音频放大器,非常适用于汽车类紧急呼叫(eCall)、远程信息处理、仪表板应用。该器件采用14.4VDC汽车电池供电,可在负载为4Ω且THDN不超过10%的情况下提供高…

MQTT的学习之Mosquitto集群搭建

文章钢要: 1、进行双服务器搭建 2、进行多服务器搭建 一、Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简单的Mosquitto集群模式。 首…

Win11搜索栏无法使用怎么办?

随着Windows 11的正式发布,许多用户已经升级了他们的操作系统。但是安装Win11系统之后,人们发现它有一些问题。例如,Win11搜索栏无法使用,这极大地影响了用户体验。那我们该如何解决Windows搜索栏用不了这一问题?方法1…

Matplotlib精品学习笔记002-Pyplot详解,快速绘图

Matplotlib精品学习笔记002-Pyplot详解, matplotlib.pyplot集合了一系列功能,运行起来和MATLAB相似。 每个pyplot功能都会对画布(figure)进行修改:包括创建画布,在画布上创建一个画图区,向画图…

【JVM】垃圾回收器

垃圾回收器 Serial收集器 单线程,进行垃圾收集工作时必须暂停其他所有的工作线程。STW造成了不好的用户体验。 新生代采用复制算法,老年代采用标记整理算法。 Serial Old Serial 收集器的老年代版本,它同样是一个单线程收集器。它主要有两…

FairGuard-Windows加固工具版本更新日志

FairGuard-Windows加固工具1.2.2版本更新日志: ■ 增加Unity Resources资源加密的支持; ■ 增加单独Assetbundle资源加密,并同时支持压缩包和文件夹作为输入的方式; ■ 增加对游戏原文件夹加固的支持; Windows加固方案介绍 FairGuard专为游戏量身定…

IntelliJ IDEA 安装JRebel实现热部署详细版(亲测有效)

简介 JRebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。 JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。 安装JRebel 1.file–>setting–>plugins–>在Marketplace的搜索框输入JRe…

【记录问题】RuntimeError:working outside of application context. Flask使用SQLAlchemy数据库

前提:Flask使用SQLAlchemy数据库 本质:依赖包版本不匹配 问题1:报错RuntimeError:working outside of application context. 运行程序报错,如下错误: 原因:flask-sqlalchemy 版本过高导致&am…

试题 算法训练 自行车停放

问题描述 有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左…

python自学之《21天学通Python》(16)——第19章 用Pillow库处理图片

Pillow是Python2.X时代比较流行的Python ImagingLibrary(简称Pillow)图像处理库的分支,并修复了一些bug。Pillow提供了对Python3的支持,为Python3解释器提供了图像处理的功能。和Pillow库一样提供了广泛的文件格式支持、高效的内部…

IDEA如何创建一个springboot项目

要想进入springboot的殿堂,你的跨进springboot的门槛,下面就是使用IDEA初始话一个简单的springboot项目。 选择Create New Project 选择Spring Initializer——>选择对应的jdk版本——>Default默认在线构建,需要联网噢 选择自己想写…

2005-2019年我国地级市国内外旅游人数和收入数据

旅游产业的发展情况是一个城市经济和文化影响力的重要指标,我们在很多研究中都会用到旅游相关的数据,之前我们介绍过1978-2020年的中国旅游统计年鉴和2022年13604条的全国A级景区数据(可以查看之前推送的文章)。 本次我们为大家介…

上传文件-课后程序(JAVA基础案例教程-黑马程序员编著-第九章-课后作业)

【案例9-3】 客户端向服务端上传文件 【案例介绍】 1.案例描述 编写一个客户端向服务端上传文件的程序,要求使用TCP通信的的知识,将本地机器输入的路径下的文件上传到D盘中名称为upload的文件夹中。并把客户端的IP地址加上count标识作为上传后文件的文…

网络基础之IP地址和子网掩码

一、IP地址IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0 一直到255.255.255.255。互联网上的…

虚拟内存原理

局部性原理 计算机组成原理里我们可以知道cache掉入的数据都是连续的 我们可以看下面的例子,data创建的数组,因为我们要读入的是这个数组所以调入的是这一段内存的内容就大概率不会miss 但是我们要知道有些程序的代码被执行的几率是很小的,…

通达信KDJ抄底指标公式,利用J值小于0

前几天介绍了平滑KDJ指标公式,当时有人提出来不建议处理KDJ,KDJ的特点是灵敏,经过处理后就失去其意义了。不过我认为每种指标有相应的使用场景,不必拘泥于原始指标,指标也是人想出来的。今天就利用KDJ的灵敏&#xff0…

Windows下curl编译,使用vcpkg定制自己的【curl】。

本篇介绍在Windows下如何编译curl,curl自称是星球上最好用的计算机网络工具,但是它在windows上纯手动编译很困难,我们使用vcpkg来简化它的编译,方便我们使用。 目录 一、CURL介绍 二、vcpkg下载、编译、定制【curl】 三、编写…

代码随想录算法训练营第十五天 | 层序遍历 、226.翻转二叉树、101.对称二叉树

打卡第15天,今天继续二叉树 今日任务 层序遍历10道题226.翻转二叉树101.对称二叉树 层序遍历10道题 题单 102.二叉树的层序遍历107.二叉树的层次遍历II199.二叉树的右视图637.二叉树的层平均值429.N叉树的层序遍历515.在每个树行中找最大值116.填充每个节点的下一个…

工作篇:触摸屏原理介绍

一、触摸屏概述 触摸屏作为一种新的输入设备,它是目前最简单、方便、自然的一种人机交互方式。 当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶…