os功能模板

【 一 】简介

  os 就是 “operating system” 的缩写,顾名思义,os 模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用 os 模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出 OSError 异常或其子类异常。

注意: 本模块提供了一种使用与操作系统相关的功能的便捷式途径。如果是读写文件的话,建议使用内置函数 open() ;如果是路径相关的操作,建议使用 os 的子模块 os.path ;如果要逐行读取多个文件,建议使用 fileinput 模块;要创建临时文件或路径,建议使用 tempfile 模块;要进行更高级的文件和路径操作则应当使用 shutil 模块。

        当然,使用 os 模块可以写出操作系统无关的代码,并不意味着 os 无法调用一些特定系统的扩展功能,但要切记一点:一旦这样做就会极大损害代码的可移植性

        此外,导入 os 模块时还要小心一点,千万 不要 为了图调用省事儿而将os 模块解包导入,即不要使用:

from os import *

来导入os模块;否则os.open() 将会覆盖内置函数open(),从而造成预料之外的错误。

【 二 】引言

【 1 】 模块的导入

        模块的导入语法为:import + 模块名
        import [ ɪmˈpɔːt]:输入,导入。
        注意:import 与模块名之间有个空格。



一个模块就是一个写好了代码的Py 文件,里面有类、函数、变量。
我们通常需要通过调用模块中的类、函数、变量来实现某些特定的功能:

调用模块中的某一个类、函数或变量的语法如下:
1. 调用模块下的类:模块名.类名(),如 csv.DictReader()
2. 调用模块下的函数:模块名.函数名(),如 os.mkdir()
3. 调用模块下的变量:模块名.变量名,如 os.name()

【 3 】常用的os 模块命令
注意:os 模块是Python的内置模块,使用前不需要安装,但需要import 导入。
 

【 三 】常用功能

注意:  os模板中大多数接收路径作为参数的函数也可以接受“文件描述符”作为参数。

文件描述: file descriptor, 在Python文档中简记为fd,是一个与某个打开的文件对象绑定的整数们可以理解为该文件在系统中的编号。

【 1 】 os.getcwd()获取当前工作目录

import os

lujing_dir = os.getcwd()
print('当前的工作目录为:',lujing_dir)
# 当前的工作目录为: C:\Users\小白\PycharmProjects\pythonProject2\3

【 2 】os.mkdir()创建目录

import os

new_dir = '创建新的目录'
os.mkdir(new_dir)

new_dir = 就是你要创建目录的名字

【 3 】os.listdir()列出目录内容

import os
dir_path = '.'
dir_mulu = os.listdir(dir_path)
for i in dir_mulu:
    print(i)
# 01.py
# 01.txt
# 02.py
# 02.txt
# 03.py
# 05.py
# 1.py
# 1作业.py
# 2.py
# 2.练习.py
# 3.py
# 6.py
# os模板.py
# 创建新的目录
# 时间模块.py
# 随机模块.py

【 4 】os.remove()删除文件或os.rmdir()目录 

import os
# 删除文件
file_path = '5.txt'
os.remove(file_path)
# 删除目录
dir_path = '创建新的目录'
os.rmdir(dir_path)

【 5 】os.rename重命名文件或目录

import os
# 旧的文件名字目录也可以
old_name = '6.py'
# 新的文件路径
new_name = '06.py'
os.rename(old_name,new_name)

----------------------------------------------------------------------------------------------

【 6 】os.path.exists检查路径是否存在

import os
path = '02.txt'
exists = os.path.exists(path)
print("检查路径是否存在:",exists)
# 检查路径是否存在: True

【 7 】os.system()执行系统命令

import os

command = 'ls-l'
os.system(command)

【 8 】os.path.abspath()获取文件或者目录的决定路径

import os
bt_path  = '1.txt'
new_path = os.path.abspath(bt_path)
print('获取文件或者目录的绝对路径:',new_path)
# 获取文件或者目录的绝对路径: C:\Users\小白\PycharmProjects\pythonProject2\3\1.txt

【 9 】os.path.join() 拼接路径

import os

directory = "/path/to/directory/test"
filename = "01.txt"
file_path = os.path.join(directory, filename)
print("File path: ", file_path)

# File path:  /path/to/directory/test\01.txt

【 10 】os.oath.isdir()判断是否为文件或者目录

import os
path = '3.txt'
path1 = 'func'
is_wenjian = os.path.isfile(path)
is_mulu = os.path.isdir(path1)
print('是不是文件:',is_wenjian)
print('是不是目录:',is_mulu)

【 11】 os.path.getmtime()获取文件大小和修改时间

import os,time

path ='01.txt'
size = os.path.getsize(path)
xiu_time = os.path.getmtime(path)
formatt_time = time.ctime(xiu_time)
print(size)
print(xiu_time)
print(formatt_time)
# 161
# 1702544373.5834434
# Thu Dec 14 16:59:33 2023

【 12 】获取当前文件所在的路径

import os
#获取当前脚本所在的文件夹路径
name_dir = os.path.dirname(os.path.abspath(__file__))
print('获取当前文件夹路径',name_dir)
# 获取当前文件夹路径 C:\Users\小白\PycharmProjects\pythonProject2\3

需要注意的是,在使用 os 模块时,需要根据操作系统的不同考虑路径的分隔符问题。在 Windows 中,路径分隔符为反斜杠 \;在 Unix/Linux/Mac 中,路径分隔符为正斜杠 /。可以使用 os.sep 变量获取当前操作系统的路径分隔符。

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

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

相关文章

深入理解JVM虚拟机第三十二篇:详解JVM当中本地方法栈

😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring等等很多应用和源码级别的高质量视频和笔记资料,你想学的我们这里都有! 🥭🥭3:QQ群:583783824 📚📚 工作VX:BigTreeJava 拉你…

Python框架篇(5):FastApi-中间件使用

1.介绍 1.1 官网介绍 "中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作. 它接收你的应用程序的每一个 请求. 然后它可以对这个 请求做一些事情或者执行任何需要的代码. 然后它将 请求传递给应用程序的其他部分 (通过某种 路径操…

全球汽车行业的数字化转型:产品和后端的渐进之旅

如何管理汽车行业的数字化转型?在我们本篇文章中了解更多有关如何设定长期目标的信息。 正在改变汽车行业的26个数字化主题 最近一篇关于汽车行业数字化转型的论文确定了26个数字技术主题(论文详情请点击阅读原文),分为三个主要集群: 1)驾驶…

添加E1000网卡进行测试,只有VMXNET3性能的四分之一

正文共:1444 字 14 图,预估阅读时间:2 分钟 我们前面介绍了VMware ESXi 6.7中的适配器类型性能(VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!),当时的配置项主要为E1000e和VMXN…

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统 项目及实现框架开发框架核心实现机制数据准备及加载加载文本文本的分割向量数据库存储文本的“嵌入”概念向量数据库概念 相关信息获取RetrievalQA生成回答并展示示例小结 Refere…

MathBuddyGUI:MATLAB多功能计算器,2060行代码

是我做的一个MATLAB课设,是一个带画图、输出模式转换、简单控制系统仿真等功能的计算器。练习GUI编程用。 仓库链接: MathBuddyGUI: MATLAB课设,一个带画图、输出模式转换、简单控制系统仿真等功能的计算器,练习GUI编程用。 (gi…

C++——C++11(1)

时至今日,C标准已经到了C23,但是你要说哪一次提出的标准最经 典,那C11一定会被人提及,C11带来了数量可观的变化,其中包 含了约140个新特性,以及对C03标准中约600个缺陷的修正,这使得 C11更像是从…

在用 App 设计工具创建的 App 内共享数据

目录 定义属性 访问属性 示例 共享绘图数据和下拉列表选择 使用属性是在 App 内共享数据的最佳方法,因为属性可供 App 内的所有函数和回调访问。所有 UI 组件都是属性,因此可以使用以下语法来访问和更新回调中的 UI 组件: app.Component…

Java 第12章 异常 本章作业

1 编程 两数相除的异常处理 各自属于哪些异常: 数据格式不正确 NumberformatException 缺少命令行参数 ArrayIndexOutOfBoundsException 除0异常处理 ArithmeticException ArrayIndexOutOfBoundsException 为数组下标越界时会抛出的异常,可以在检测到命…

计算机网络知识点

计算机网络中的OSI模型 OSI模型是指“国际标准化组织(SO)”提出的使各种计算机在世界范围内互通互联的网络标准框架简称开放系统互联参考模型 (OSI)。 七层模型:应用层、表示层、会话层、传输层、网络层(IP协议、RARP协议、ARP协议、CIDR协议&#xff0…

0x31 质数

0x31 质数 定义: 若一个正整数无法被除了1和它自身之外的任何自然数整除,则称该数为质数(或素数),否则则称该正整数为合数。 在整个自然数集合中,质数的数量不多,分布比较稀疏,对…

机器学习项目精选 第一期:超完整数据科学资料合集

大噶吼,不说废话,分享一波我最近看过并觉得非常硬核的资源,包括Python、机器学习、深度学习、大模型等等。 1、超完整数据科学资料合集 地址:https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials Pytho…

strlen的三种模拟实现方法

首先&#xff0c;我们要了解strlen函数的参数以及返回值&#xff0c;还有使用方法。 1. 计数器方法 #include <stdio.h>size_t my_strlen(const char* str) {int count 0;while (*str) {count;}return count; } int main() {char arr[] "abcdef";int len …

专科论文降重修改技巧 神码ai

大家好&#xff0c;今天来聊聊专科论文降重修改技巧&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 专科论文降重修改技巧 在专科论文的撰写过程中&#xff0c;查重率是一…

高质量C/C++代码心得

写出高质量的C/C代码是一个涉及多方面的任务&#xff0c;它要求程序员不仅具备扎实的语言基础&#xff0c;还需要掌握一系列的软件设计和开发原则。下面将详细介绍如何写出高质量的C/C代码&#xff0c;并通过10个例子进行具体阐述。 一、编码规范 编写高质量的代码&#xff…

时序预测 | Python实现LSTM-Attention-XGBoost组合模型电力需求预测

时序预测 | Python实现LSTM-Attention-XGBoost组合模型电力需求预测 目录 时序预测 | Python实现LSTM-Attention-XGBoost组合模型电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从…

力扣刷题-二叉树-二叉树左叶子之和

404 左叶子之和 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24 思路 迭代法 迭代法理解…

springboot升级到3.2导致mybatis-plus启动报错

在springboot升级到3.2时&#xff0c;服务启动报错 java.lang.IllegalArgumentException: Invalid value type for attribute ‘factoryBeanObjectType’: java.lang.String&#xff1a; java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanOb…

基于Java SSM框架实现水果销售网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现水果销售网站系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&a…

Linux 基本语句_16_Udp网络聊天室

代码&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdlib.h> #include <unistd.h> #include <string…