python-os模块学习,全

目前,计算机上主流的操作系统有Windows、Unix、Mac OS等,os模块为多操作系统的访问提供了相关功能的支持,涉及对文件相关操作功能的实现,系统访问path路径的操作,shell命令行操作,Linux扩展属性的操作,流程管理,CPU等硬件相关信息的获取,基于操作系统的真正的随机数的操作及相关的一些系统常量进行介绍。

python-os模块学习

    • 1. os库基本介绍
    • 2. 导库
    • os系统
      • os.system()
      • os.name
    • 3.文件和目录的常用操作
      • os.getced()
      • os.chdir(x)
      • os.rename(x,y)
      • os.remove(x)
      • os.mkdir(x)
      • os.rmdir(x)
      • os.makedirs(x)
      • os.removedirs(x)
    • 4. 路径的常用操作
      • 操作文件路径的函数
        • os.path.basename(path)
        • os.path.dirname(path)
        • os.path.split(path)
        • os.path.join(path1,path2...)
        • os.path.abspath(path)
      • 获取文件和目录属性的函数
        • os.path.isdir(path)
        • os.path.isfile(path)
        • os.path.isabs(path)
        • os.path.exists(path)
        • os.path.getsize(path)
        • os.path.getctime(path)
        • os.path.getmtime(path)
      • 文件扩展名函数
        • os.path.splitext(path)
    • 文件和目录的遍历方法
      • os.listdir()
      • os.walk()

1. os库基本介绍

Os库提供通用的、基本的操作系统交互功能

  • Os库是python标准库,包含几百个函数
  • 常用路径操作、进程管理、环境参数等几类
  • 路径操作:os.path子库,处理文件路径及信息
  • 进程管理:启动系统中其他程序
  • 环境参数:获得系统软件硬件信息等环境参数

2. 导库

在python中,使用到一个库的时候,需要使用到 import 将这个库导入到当前的工作空间中,其中,导入的方式有下面几种

# 1.使用 import 导入
import 库名
import 库名1,库名2,...  # 导入多个库# 2.使用 from
from 库名 import 函数名 # 导入指定的方法
from 库名 import *     # 导入该库中所有的方法# 3.使用 as
import 库名 as 别名  # 防止库名太长,不好记
from 库名 import 函数名 as 别名 # 导入库中的某个方法,为其设置别名

os系统

os.system()

os.system("mv a.txt b.txt")# 可以将 "mv a.txt b.txt" 作为当前操作系统的命令进行使用

os.name

import os
print(os.name)  # 打印当前系统类型
print(type(os.name))  # 打印返回值类型

3.文件和目录的常用操作

函数功能描述
os.getced()获取当前的路径
os.chdir(x)将当前的工作目录更改为x
os.rename(x,y)将指定路径的文件或目录 x 重命名为 y
os.remove(x)删除指定路径文件 x (如果指定到一个目录,则会报错)
os.mkdir(x)创建指定路径的新目录 x (如果存在,则报错)
os.rmdir(x)删除指定路径x的空目录(如果目录不为空,则报错)
os.makedirs(x)递归地创建路径x中的多级目录(如果目录已存在,则不回发生任何操作)
os.removedirs(x)递归地删除路径 x 中所有为空的目录

当前目录以及下面的文件

# tree /root/python
python
└── os├── a.txt└── main.py

os.getced()

# 当前路径 /root/python/osimport os
a = os.getcwd()
print(a)# 输出: /root/python/os

os.chdir(x)

# 当前路径 /root/python/osimport os
a = os.getcwd()
print(a)
os.chdir("/opt/")
a = os.getcwd()
print(a)# 输出: 
# /root/python/os
# /opt

os.rename(x,y)

import osa = "/root/python/os/a.txt"
b = "/root/python/os/b.txt"
os.rename(a,b)
# tree /root/python
python
└── os├── b.txt└── main.py

os.remove(x)

import os
os.remove('/root/python/os/b.txt')

当前目录以及下面的文件

# tree /root/python
python
└── os└── main.py

os.mkdir(x)

import os
os.mkdir("/root/python/os/mk")
# tree /root/python
python
└── os├── main.py└── mk

os.rmdir(x)

import os
os.rmdir("/root/python/os/mk")
os.rmdir("/root/python/os")# 执行结果
# Traceback (most recent call last):
#   File "/root/python/os/main.py", line 26, in <module>
#     rmdir()
#   File "/root/python/os/main.py", line 25, in rmdir
#     os.rmdir("/root/python/os")
# OSError: [Errno 39] Directory not empty: '/root/python/os'
# tree /root/python
python
└── os└── main.py

os.makedirs(x)

import os
os.makedirs("/root/python/os/mk/dump")
# tree /root/python
python
└── os├── main.py└── mk└── dump

os.removedirs(x)

import os
os.removedirs("/root/python/os/mk/dump")
# tree /root/python
python
└── os└── main.py

4. 路径的常用操作

os.path模块是Python中处理路径信息的常用模块之一,作为os模块的子模块,通常两者一起使用,来操作文件和目录。

路径中要区分绝对路径和相对路径

操作文件路径的函数

函数功能描述
os.path.basename(path)返回路径中的最后一项,通常是文件名
os.path.dirname(path)返回路径得到目录部分
os.path.split(path)分割路径,将目录和文件名拆开,返回一个二元的元组
os.path.join(path1,path2…)将多个路径组合为一个完整的路径,返回一个字符串
os.path.abspath(path)返回指定路径的绝对路径
os.path.basename(path)
import os
name = os.path.basename("/root/python/os/a.txt")
print(name)# 输出:a.txt  对于是否存在都可以获取到

之后对 /root/python/os/ /root/python/os 这两种情况进行了测试

/root/python/os/ 运行结果为 空

/root/python/os 运行结果为 os

os.path.dirname(path)
import os
name = os.path.diename("/root/python/os/a.txt")
print(name)# 输出:/root/python/os/  对于是否存在都可以获取到

之后对 /root/python/os/ /root/python/os 这两种情况进行了测试

/root/python/os/ 结果为 /root/python/os/

/root/python/os 结果为 /root/python/

os.path.split(path)
import name
name = os.path.split("/roo/python/os/a.txt")
print(name)# 输出结果 ('/roo/python/os', 'a.txt')
os.path.join(path1,path2…)
import os
name = os.path.join("/1/","2/","3/")
print(name)# 输出结果 /1/2/3/
os.path.abspath(path)
import os
name = os.path.abspath("../../.ssh")
print(name)# 输出结果  /root/.ssh

获取文件和目录属性的函数

函数功能描述
os.path.isdir(path)判断该路径是否为目录,返回 true 或 false
os.path.isfile(path)判断该路径是否为文件,返回 true 或 false
os.path.isabs(path)判断该字符串是否为绝对路径,返回 true 或 false
os.path.exists(path)判断该路径(或文件)是否存在,返回 true或false
os.path.getsize(path)判断指定文件的大小,单位为字节
os.path.getctime(path)获取指定文件或目录的创建时间
os.path.getmtime(path)获取指定文件或目录的修改时间
os.path.isdir(path)
import
dir1 = os.path.isdir("/root/")
print(dir1)
dir2 = os.path.isdir("/root/python/os/a.txt")
print(dir2)# 执行结果
# True
# False
os.path.isfile(path)
import
file1 = os.path.isfile("/root/")
print(file1)
dir2 = os.path.isfile("/root/python/os/a.txt")
print(file2)# 执行结果
# False
# True
os.path.isabs(path)
abs1 = os.path.isabs("/root/python")
print(abs1)
abs2 = os.path.isabs("./python")
print(abs2)# 执行结果
# True
# False
os.path.exists(path)
import os
ex1 = os.path.exists("/root/python")
print(ex1)
ex2 = os.path.exists("/root/os")
print(ex2)# 执行结果 
# True
# False
os.path.getsize(path)
import os
size = os.path.getsize("/root/")# 执行结果 
# 4096

截屏2024-01-12 15.29.06

os.path.getctime(path)
import os
time = round(os.path.getctime("/root/python/os"))   # round是用来四舍五入的
print(time)# 执行结果
# 1705043532  这是一个时间戳  

image-20240112154805929

os.path.getmtime(path)
import os
time = round(os.path.getctime("/root/python/os/a.txt"))
print(time)time1 = round(os.path.getmtime("/root/python/os/a.txt"))
print(time1)

image-20240112161948310

这个修改时间和创造时间一直都是一致的,无法进行测试

文件扩展名函数

在处理数据的时会遇见一种场景,需要对目录中特定的文件进行处理,那怎么获取到一个文件的类型呢? os.path.splitext()函数带你走近这个秘密

os.path.splitext(path)会将路径分为文件名和扩展名,返回一个二元组,位置一是文件名,位置二是扩展名,如果该文件没有扩展名,则第二个元素为空字符串。

os.path.splitext(path)
import os
name1 = os.path.splitext("/root/python/os/a.txt")
print(name1)
name2 = os.path.splitext("/root/python/os/a")
print(name2)# 输出结果
# ('/root/python/os/a', '.txt')
# ('/root/python/os/a', '')

文件和目录的遍历方法

os.listdir()

os.listdir(path)函数得到一个包含指定目录下所有文件和子目录名称的列表

import os
name = os.listdir("/")
print(name)# 输出结果: ['wget-log.3', 'dev', 'run', 'wget-log.2', 'var', 'boot', 'media', 'wget-log.1', 'srv', 'ssh', 'usr', 'lib', 'opt', 'lost+found', 'sys', 'root', 'wget-log', 'sbin', 'ssd', '1.txt', 'aaa', 'proc', 'tmp', 'bin', 'mnt', 'snap', 'etc', 'home']

os.walk()

os.walk(path, topdown=True, onerror=None, followlinks=False)函数是一个递归式的遍历,用于遍历指定目录及其目录中的所有文件和目录!

  • path 为要遍历的目录路径。返回的是一个三元组(dirpath,dirnames,filenames),dirpath 为当前遍历的目录树的目录路径,dirnames 为当前目录下所有子目录列表,filenames为当前目录下所有文件列表
  • topdown 为可选参数,为 True 时(默认)表示优先遍历 path目录,即 walk 会遍历 top 文件夹与其每一个子目录。否则会优先遍历 top 的子目录。
  • onerror 为可选的错误处理函数。
  • followlinks为可选参数,为 True 时表示会遍历目录下的快捷方式实际所指的目录,为 False 时(默认)表示优先遍历 top 的子目录。

当我们使用os.walk()函数时,它会从根目录开始遍历整个目录树,并且对于每个目录,都会返回一个三元组

image-20240112165420745

import os
# 递归遍历该目录
walk_tree = os.walk('/root/python')# 从根目录开始遍历整个目录树,每一个目录都会返回一个三元组,使用for循环依次查看结果
for dirpath,dirnames,filenames in walk_tree:print('----------当前遍历的目录树的目录路径----------')print(dirpath)print('----------当前目录下的所有子目录列表----------')# 遍历当前目录下所有的子目录for dirname in dirnames:# 拼接路径,得到子目录的路径dir_name = os.path.join(dirpath, dirname)print(dir_name)print('----------当前目录下所有文件列表----------')# 遍历当前目录下所有的文件for filename in filenames:# 拼接路径,得到文件路径file_name = os.path.join(dirpath,filename)print(file_name)

image-20240112165515930

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

井盖异动传感器,守护脚下安全

随着城市化进程的加速&#xff0c;城市基础设施的安全问题日益受到关注。其中&#xff0c;井盖作为城市地下管道的重要入口&#xff0c;其安全问题不容忽视。然而&#xff0c;传统的井盖监控方式往往存在盲区&#xff0c;无法及时发现井盖的异常移动。为此&#xff0c;我们推出…

[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

目录 (一)Iterable 1. 介绍 2. 常见方法 (二)Collection 1. 介绍 2. 常见方法 (三) List 1. 介绍 2. 常见方法 总结 (一) Iterable 1. 介绍 Iterable接口是Java中的一个接口&#xff0c;它是集合框架中的根接口之一。Iterable接口表示实现了迭代功能&#xff0c;即可以通过迭…

HBuilder/HBuilderX 运行APP

安装adb https://developer.android.com/tools/releases/platform-tools?hlzh-cn 配置环境变量 测试是否配置成功 adb version HBuilder/HBuilderX 配置路径 数据线连接手机 运行即可 未检测到设备排查 真机运行常见问题run | uni-app官网

js检测网址是否可访问,javascript检测网址是否可访问,支持跨域;

js检测网址是否可访问&#xff0c;javascript检测网址是否可访问&#xff0c;支持跨域&#xff1b; <!DOCTYPE html> <html> <head><meta name"viewport" content"widthdevice-width" /><title>url检测是否可访问</tit…

【深度学习每日小知识】Logistic Loss 逻辑回归

逻辑回归的损失函数 线性回归的损失函数是平方损失。逻辑回归的损失函数是对数损失&#xff0c;定义如下&#xff1a; L o g L o s s ∑ ( x , y ) ∈ D − y log ⁡ ( y ′ ) − ( 1 − y ) log ⁡ ( 1 − y ′ ) LogLoss\sum_{(x,y)\in D}-y\log(y)-(1-y)\log(1-y) LogLoss…

大创项目推荐 深度学习火车票识别系统

文章目录 0 前言1 课题意义课题难点&#xff1a; 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 图像识别 火车票识别系统 该项目较为新颖&#xff0c;适…

JVM-JVM支持高并发底层原理精讲

一、透彻掌握高并发-从理解JVM开始 二、从线程的开闭看JVM的作用 1.run方法 启动start方法&#xff0c;会调用底层C方法&#xff0c;告诉操作系统当前线程处于可运行状态&#xff0c;而如果直接调用run方法&#xff0c;则就不是以线程的方式来运行了&#xff0c;只是当做一个普…

【CSS】首个字符占用多行,并自定义样式

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>首字母大写</title><style&…

奥伦德光电耦合器5G通信领域及其相关领域推荐

光电耦合器是以光为媒介传输电信号的一种电-光-电转换器件。由于该器件使用寿命长、工作温度范围宽&#xff0c;所以在过程控制、工业通信、家用电器、医疗设备、通信设备、计算机以及精密仪器等方面有着广泛应用在当前工艺技术持续发展与提升的过程中&#xff0c;其工作速度、…

mybatisPlus 将List<String>字段转成json字符串,使用JacksonTypeHandler以及自定义类型处理器实现

文章目录 场景使用JacksonTypeHandler实现类型转换自定义StringListTypeHandler处理器实现 场景 项目中经常需要将List转成json存储到数据库中, mybatisPlus默认实现了JacksonTypeHandler&#xff0c;GsonTypeHandler&#xff0c;FastjsonTypeHandler&#xff0c;也可以自定义类…

Dart 空感知操作符:??

示例 写了如下代码&#xff1a; var str1 "hello"; var str2 "world"; var result str1 ?? str2.toUpperCase(); //如果str1不为空&#xff0c;则执行后面的语句 print(result); 代码可以正常执行&#xff0c;但是报了如下错误&#xff1a; Warnin…

【操作系统】重点概念汇总(手写版本)

Chapter1&#xff1a;操作系统引论 Chapter2&#xff1a;进程管理 Chapter3&#xff1a;处理机调度与死锁 Chapter4&#xff1a;存储器管理 Chapter5&#xff1a;虚拟存储器 Chapter6&#xff1a;输入输出系统 Chapter7&#xff1a;文件管理 Chapter8&#xff1a;磁盘存…