python中os库用法详解(总结)

        os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能。

具体步骤如下:

1. 导⼊os模块

import os

2. 使⽤ os 模块相关功能

os.函数名()

1、⽂件重命名

os.rename(⽬标⽂件名, 新⽂件名)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.rename('./test_folder', './new_folder')
print(os.listdir())

运行结果;

2、创建文件

os.mknod('./new_file.txt')    # Windows下不支持

示例代码:

import os

print(os.listdir())

# 新建文件(windows系统不支持,报错)
# os.mknod('./new_file.txt')

# windows下新建文件
f = open('./new_file2.txt', 'w', encoding='utf-8')
f.close()

3、删除⽂件

os.remove(⽬标⽂件名)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.remove('./text.txt')
print(os.listdir())

运行结果:

4、创建⽂件夹

os.mkdir(⽂件夹名字)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.mkdir('./test_folder')
print(os.listdir())

运行结果:

详见博文:Python创建目录文件夹_IT之一小佬的博客-CSDN博客 

5、删除⽂件夹

os.rmdir(⽂件夹名字)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.rmdir('./test_folder')
print(os.listdir())

运行结果:

6、获取当前⽬录

os.getcwd()

示例代码:

import os

print(os.getcwd())

 运行结果:

7、改变默认⽬录

os.chdir(⽬录)

8、获取⽬录列表

os.listdir(⽬录)

示例代码:

import os

print(os.listdir())

运行结果:

9、返回路径的上一级路径字符串

os.path.dirname(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.dirname('./aa/python_test'))
print(os.path.dirname('./python_test'))
print(os.path.dirname(a))

运行结果:

 

10、返回路径的最后一级目录名(文件夹名)或文件名(全称)

os.path.basename(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.basename(a))
print(os.path.basename('./aa/python_test'))
print(os.path.basename('./python_test'))

运行结果:

11、返回文件名和其后缀组成的元组

os.path.splitext(file_name)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.splitext(a))
print(os.path.splitext('./aa/python_test'))
print(os.path.splitext('./python_test'))
print(os.path.splitext('./python_test.python'))

运行结果:

12、获取当前文件的绝对位置

os.path.abspath(__file__)

示例代码:

import os

current_path = os.path.abspath(__file__)
print(current_path)

current_folder = os.path.dirname(current_path)
print(current_folder)

运行结果:

13、返回当前工作目录的路径加上string组成的路径字符串

 os.path.abspath(string)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.abspath(a))
print(os.path.abspath('./aa/python_test'))
print(os.path.abspath('./python_test'))
print(os.path.abspath('./python_test.python'))

运行结果:

 14、判断一个路径是否是一个目录(文件夹)

os.path.isdir(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isdir(a))
print(os.path.isdir('./aa/python_test'))
print(os.path.isdir('../111'))
print(os.path.isdir('./python_test.python'))

运行结果:

 15、判断一个路径是否是一个文件

os.path.isfile(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isfile(a))
print(os.path.isfile('./aa/python_test'))
print(os.path.isfile('../111'))
print(os.path.isfile('./python_test.py'))

print(os.listdir())

运行结果:

16、以列表的形式返回一个目录(dir_path只能是目录,不能是文件名路径)下的所有文件(全称)和文件夹名称

os.listdir(dir_path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
print(os.listdir('E:/代码/111'))
print(os.listdir('E:/代码/111/css'))

运行结果:

17、删除指定空目录(空文件夹)

 os.removedirs(dir_path)

示例代码1:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.removedirs('./new_folder')
print(os.listdir())

运行结果:

示例代码2:   【必须是空文件夹】

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.removedirs('./new_folder')
print(os.listdir())

运行结果:

 18、判断一个路径是否存在

os.path.exists(path)

示例代码:

import os

a = os.getcwd()
print(a)
if os.path.exists(a):
    print('path exist!')
else:
    print('path not exist!')

if os.path.exists('E:/代码/111'):
    print('path exist!')
else:
    print('path not exist!')

if os.path.exists('E:/代码/111/new_path'):
    print('path exist!')
else:
    print('path not exist!')

运行结果:

19、返回path的真实路径

os.path.realpath(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.realpath('./python_test.py'))

运行结果:

20、路径拼接

os.path.join(path,name)

示例代码1:

import os

a = os.getcwd()
print(a)
b = os.path.join(a, 'works')
print(b)

运行结果:

示例代码2:

import os

print(os.path.join('xx', 'yy', 'zz'))
print(os.path.join('AA', 'BB', 'CC', 'DD'))

运行结果:

21、返回一个路径的目录名和文件名 

os.path.split()

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.split(a))
print(os.path.split('E:/代码/111/index.html'))

运行结果:

 22、获得文件属性

os.stat(file)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.stat(a))
print(os.stat('E:/代码/111/index.html'))

运行结果:

 23、获得文件大小

os.path.getsize(name)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.getsize(a))
print(os.path.getsize('E:/代码/111/index.html'))

运行结果:

24、判断是否为绝对路径

os.path.isabs()

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isabs(a))
print(os.path.isabs('E:/代码/111/index.html'))
print(os.path.isabs('./index.html'))

运行结果:

25、获取环境变量中的值

        使用os获取环境变量的值,通常是使用os.getenv("value"),也可以使用os.environ.get("value")。也能够直接在settings等文件中设置环境变量,使用os.environ["key"] = "value"。

详解博文:python获取环境变量中的值(Pycharm)_IT之一小佬的博客-CSDN博客

26、随机生成n个字节的字符串

os.urandom(n)的作用就是随机生成n个字节的字符串,可以作为随机加密的key使用。

示例代码1:

import os

aa = os.urandom(6)
print(aa)

bb = aa.decode('utf-8', 'ignore')
print(bb)

运行结果:

示例代码2:

import os

for _ in range(5):
    print(os.urandom(6))

运行结果:

27、文件和文件夹操作应⽤案例

需求:批量修改⽂件名,既可添加指定字符串,⼜能删除指定字符串。

步骤

        1. 设置添加删除字符串的的标识

        2. 获取指定⽬录的所有⽂件

        3. 将原有⽂件名添加/删除指定字符串,构造新名字

        4. os.rename()重命名

示例代码1:

import os

# 获取指定⽬录
dir_name = './'
# 获取指定⽬录的⽂件列表
file_list = os.listdir(dir_name)
print(file_list)

运行结果:

 示例代码2:   【把flag=1改为flag=2即为删除功能】

import os

# 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
flag = 1
# 获取指定⽬录
dir_name = './'
# 获取指定⽬录的⽂件列表
file_list = os.listdir(dir_name)
print(file_list)

# 遍历⽂件列表内的⽂件
for name in file_list:
    # 添加指定字符
    if flag == 1:
        new_name = 'Python-' + name
    # 删除指定字符
    elif flag == 2:
        num = len('Python-')
        new_name = name[num:]
    # 打印新⽂件名,测试程序正确性
    print(new_name)

    # 重命名
    os.rename(dir_name + name, dir_name + new_name)

运行结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:七种 SQL JOINS 的实现(图文详解)

MySQL:7种SQL JOINS的实现 前言一、图示表示二、代码举例1、INNER JOIN(内连接)2、LEFT JOIN(左连接)3、RIGHT JOIN(右连接)4、OUTER JOIN(全连接)5、LEFT EXCLUDING JOI…

nbcio-vue中formdesigner的组件显示不正常的处理

今天看演示系统的formdesigner组件显示不正常,也不知道是什么时候开始的事情, 如下: 对组件的操作倒是正常,但看本地是正常的,如下: 开始也不知道是什么原因,看代码也是一样的,应该…

JavaScript 中内存泄漏的几种情况?

一、是什么 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存 并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失…

Hidl编程实战(一)——定义HAL服务

1. 概述 hidl基本知识可以参考官网 安卓官网-hidl 也讲解了C和Java实现hidl 本文讲解CHal服务的创建 2. 文件的创建 aosp整编过的代码,可以直接choosecombo后使用hidl-gen工具。如果没有整编过,可以单编hidl-gen工具。 hidl-gen工具可以用来协助创建h…

Windows和Linux动态注入

摘要:最近对动态注入有一些兴趣因此搜索了些资料,简单整理了下相关的技术实现。本文只能够带你理解何如注入以及大概如何实现,对注入的方法描述的并不详细。   关键字:dll注入,hook,提权   读者须知&am…

基于Springboot+Vue的校园招聘系统(进阶版)

本项目是一年前写的一个项目的升级版,因为某些原因将它作了一个升级改进, 好多兄弟来问有没有演示,现在先来写个说明!!! 目录 一. 🦁 前言二. 🦁 开源代码与组件使用情况说明三. &am…

Qt之事件过滤器讲解并且实现快捷键切换鼠标焦点

目录 1、需求背景2、使用Qt键盘事件3、安装事件过滤器4、事件处理级别 1、需求背景 现在有一个类似于下方图的ui,用户需要在输入前一行内容后,需要摁下指定案件能够跳转到下一行继续进行输入。 2、使用Qt键盘事件 一种更为直接的解决方案是子类化QLi…

如何在 Linux 中安装、设置和使用 SNMP?

概要 SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。它允许网络管理员通过远程方式收集设备的运行状态、性能数据和错误信息,以便进行故障排除和网络优化。在Linux系统中,我们可以安装、设置和使…

IDEA配置本地Maven详细教程

IDEA配置本地Maven详细教程 一、下载二、安装三、配置环境变量四、IDEA配置Maven 一、下载 官网下载:点击下载 网盘下载:点击下载 二、安装 将下载后的zip文件(免安装版)解压到自己想要放的位置,,我这里…

对MVVM和MVC开发模式的理解

对MVVM和MVC开发模式的理解 1、MVVM2、MVC3、MVVM与MVC的区别 1、MVVM MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,View负责显示,两者做到了最大限度的分离&am…

UE4/5 通过Control rig的FullBody【蜘蛛模型,不用basic ik】

目录 根设置 FullBody IK 额外骨设置 ​编辑 晃动效果 根设置 第一步你需要准备一个蜘蛛模型,不论是官方示例或者是epic上购买的模型 然后我用的是epic上面购买的一个眼球蜘蛛: 第一步,我们从根创建一个空项【这个记得脱离父子级到root之…

多传感器时频信号处理:多通道非平稳数据的分析工具(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

四、用户管理

云尚办公系统:用户管理 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布,并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步!!&#x…

【服务器远程工具】一款好用的xshell

这里写目录标题 背景Tabby简介安装使用SSHSFTPPowerShellGit 设置外观颜色快捷键窗口 插件支持总结 背景 作为一名后端开发,我们经常需要和Linux系统打交道,免不了要使用Xshell这类终端工具来进行远程管理。今天给大家推荐一款更炫酷的终端工具Tabby&…

【SQL应知应会】分析函数的点点滴滴(三)

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分析函数的点点滴滴 1.什么是分析函数:…

计算机中CPU、内存、缓存的关系

CPU(Central Processing Unit,中央处理器) 内存(Random Access Memory,随机存取存储器) 缓存(Cache) CPU、内存和缓存之间有着密切的关系,它们共同构成了计算机系统的核…

go-cqhttp签名服务sign-server的本地搭建

新版go-cqhttp新增签名服务器签名服务器相关问题 Issue #2242 Mrs4s/go-cqhttp GitHubhttps://github.com/Mrs4s/go-cqhttp/issues/2242 其在win10系统下本地化搭建的方式为: 1.解压缩qq安装包提取lib里面的libfekit.so、libQSec.so文件并存放至一个文件夹&…

nodejs高版本降为低版本的详细解决方案

部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果,下面这篇文章主要给大家介绍了关于nodejs高版本降为低版本的详细解决方案,需要的朋友可以参考下 1.首先通过控制面板应用卸载当前环…

Spark 4/5

4. 启动Spark Shell编程 4.1 什么是Spark Shell spark shell是spark中的交互式命令行客户端,可以在spark shell中使用scala编写spark程序,启动后默认已经创建了SparkContext,别名为sc 4.2 启动Spark Shell Shell /opt/apps/spark-3.2.3-bi…

opencv检测二维码和条形码

文章目录 1 excel制作简单二维码2 识别二维码和条形码2.1 相关库2.2 decode解码2.3 圈出二维码的位置2.4 判断二维码是否授权 3 完整代码3.1 使用图片进行识别3.2 使用摄像头实时识别 4 总结 1 excel制作简单二维码 使用excel可以实现制作二维码,但只能实现做英文和…