OS---python中OS模块的相关学习总结

news2024/9/22 23:29:25

介绍 

        在Python中,os模块是一个与操作系统交互的标准库,提供了许多用于文件和目录操作、进程管理、环境变量等功能。下面是os模块中一些常用的功能和方法:

用法 

1.查看os模块内容(import os    print(dir(os)) )

结果如下:

['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL',
 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 
 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO',
 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 
 'TMP_MAX', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__cached__',
 '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 
 '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', 
 '_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'altsep', 'chdir', 
 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding',
 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 
 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode',
 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 'get_exec_path', 
 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 
 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir',
 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 
 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace',
 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle',
 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result',
 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 
 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result',
 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']

2.获取和设置当前工作目录:

  • os.getcwd(): 获取当前工作目录的路径。
  • os.chdir(path): 切换当前工作目录到指定路径。

3.文件和目录操作:

  • os.listdir(path): 返回指定目录下的所有文件和子目录的列表。
  • os.mkdir(path): 创建一个新目录。
  • os.rmdir(path): 删除一个目录。
  • os.remove(path): 删除一个文件。

4.文件路径操作:

  • os.path.join(path1, path2, ...): 将多个路径组合成一个路径。
  • os.path.abspath(path): 返回指定路径的绝对路径。
  • os.path.exists(path): 判断指定路径是否存在。
  • os.path.isdir(path): 判断指定路径是否是一个目录。
  • os.path.isfile(path): 判断指定路径是否是一个文件。

5.环境变量操作:

  • os.environ: 返回一个包含环境变量的字典。
  • os.environ.get(key): 获取指定环境变量的值。
  • os.environ.putenv(key, value): 设置指定环境变量的值。

6.进程管理:

  • os.system(command): 在操作系统上执行一个命令。
  • os.spawn*(): 一系列函数用于启动新进程。
  • os.kill(pid, signal): 向指定进程发送信号。

下面是一个简单的示例,演示如何使用os模块来列出当前工作目录下的所有文件和目录:

import os

current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")

print("当前目录下的文件和目录:")
for item in os.listdir(current_dir):
    print(item)

7.判断文件是否存在:

'''
#os.access() 方法使用当前的uid/gid尝试访问路径
import os, sys
# 假定 /tmp/foo.txt 文件存在,并有读写权限
'''
os.F_OK: 作为access()的mode参数,测试path是否存在。
os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。
'''
ret = os.access("./tmp/foo.txt", os.F_OK)
print ("F_OK - 返回值 %s"% ret)

ret = os.access("./tmp/foo.txt", os.R_OK)
print ("R_OK - 返回值. %s"% ret)

ret = os.access("./tmp/foo.txt", os.W_OK)
print ("W_OK - 返回值 %s"% ret)

ret = os.access("./tmp/foo.txt", os.X_OK)
print ("X_OK - 返回值 %s"% ret)


#os.chdir() 方法用于改变当前工作目录到指定的路径。
import os, sys
path = "./tmp"
# 查看当前工作目录
retval = os.getcwd()
print ("当前工作目录为 %s" % retval)
# 修改当前工作目录
os.chdir( path )
# 查看修改后的工作目录
retval = os.getcwd()
print ("目录修改成功 %s" % retval)


import os,stat
path = "/tmp/foo.txt"
# 为文件设置标记,使得它不能被重命名和删除
flags = stat.SF_NOUNLINK
retval = os.chflags( path, flags )
print ("返回值: %s" % retval)

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

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

相关文章

Windows客户端漏洞挖掘(红队角度)

0x01 前言 周五的时候看了key佬的演讲受益良多呀,来水水,写下目前针对Windows客户端类程序的部分挖掘入口吧,然后分享一下随手挖的很简单很简单的案例。 传统客户端 监听类的: 这里说的监听类的,指的就是安装客户端后启动的端口…

爬虫练习:获取某招聘网站Python岗位信息

一、相关网站 二、相关代码 import requests from lxml import etree import csv with open(拉钩Python岗位数据.csv, w, newline, encodingutf-8) as csvfile:fieldnames [公司, 规模,岗位,地区,薪资,经验要求]writer csv.DictWriter(csvfile, fieldnamesfieldnames)writer…

Halcon绘制图形

1、ROI是Halcon中的一个很重要的概念,为了减少计算量,只关注待检测物体或该物体周围的一片区域即可(类似于图片裁剪) * ROI是Halcon中的一个很重要的概念,为了减少计算量,只关注待检测物体或该物体周围的一片区域即可&#xff0c…

嵌入式方向还有希望吗?

我刚开始学习,也不知道我定位的是单片机工程师,嵌入式工程师职位的。 我只知道电子工程师,这个职位其实偏硬件,很多岗位需求是硬件设计,PCB设计,还要懂焊接、各种仪器仪表使用,还有些需要懂单片…

[Redis]——主从同步原理(全量同步、增量同步)

目录 Redis集群: 主从同步原理: replid和offset: 全量同步和增量同步: repl_baklog文件: 主从集群的优化: Redis集群: 部署多台Redis我们称之为Redis集群,他有一个主节点(负责写操作)&…

List(CS61B学习记录)

问题引入 上图中,赋给b海象的weight会改变a海象的weight,但x的赋值又不会改变y的赋值 Bits 要解释上图的问题,我们应该从Java的底层入手 相同的二进制编码,却因为数据类型不同,输出不同的值 变量的声明 基本类型…

【数据结构和算法初阶(C语言)】栈的概念和实现(后进先出---后来者居上的神奇线性结构带来的惊喜体验)

目录 1.栈 1.1栈的概念及结构 2.栈的实现 3.栈结构对数据的处理方式 3.1对栈进行初始化 3.2 从栈顶添加元素 3.3 打印栈元素 3.4移除栈顶元素 3.5获取栈顶元素 3.6获取栈中的有效个数 3.7 判断链表是否为空 3.9 销毁栈空间 4.结语及整个源码 1.栈 1.1栈的概念及结构 栈&am…

电力运维物联网平台

我们构建软硬件结合的生态系统,打造电力设备9物联平台,实现软件、硬件、平台、云数据一体化。 在硬件领域通过自主研发推出了一系列电力领域的硬件设备,包括:智能电力测控终端、智能电力采集终端等产品。在软件领域,我们搭…

韩国大带宽服务器的数据中心位置

很多用户会选择韩国大宽带服务器,那么韩国大带宽服务器的数据中心位置在哪,rak小编为您整理发布韩国大带宽服务器的数据中心位置。 韩国大带宽服务器的数据中心通常位于**首尔及其周边地区**。 韩国因其地理位置的优势,拥有丰富的网络带宽资源…

【智能算法】白鲨算法(AVOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2022年,Braik 等人受到白鲨捕食行为启发,提出了非洲秃鹫优化算法(White Shark Optimizer, WSO)。 2.算法原理 2.1算法思想 海洋中白鲨拥有敏锐的感知、听觉和嗅觉&#xf…

【竞技宝】LOL:sheer对位压制369 JDG鏖战三局力克TES

北京时间2024年3月15日,英雄联盟LPL2024春季常规赛继续进行,昨日共进行三场比赛,第三场比赛由TES对阵JDG。本场比赛前两局双方战至1-1平,决胜局JDG前期就打出完美节奏,中期两次团灭TES后轻松取胜,最终JDG鏖战三局击败TES。以下是本场比赛的详细战报。 第一局: TES:鳄鱼、盲僧、…

九千元家用投影仪怎么样:当贝X5 Ultra万元内天花板配置

投影仪市场正在最贱扩大,越来越的投影品牌纷纷加入市场,一方面可以促成市场的发展,但是宁一方面,市场的乱象也在不断扩大。对于数码新手来说选择一款适合的投影仪变成了一件难事,太多的品牌和产品不知道该如何选择&…

L1-5 猜帽子游戏

宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有…

非常有用的Python 20个单行代码

有用的 Python 单行代码片段,只需一行代码即可解决特定编码问题! 在本文中,云朵君将分享20 个 Python 一行代码,你可以在 30 秒或更短的时间内轻松学习它们。这种单行代码将节省你的时间,并使你的代码看起来更干净且易…

数码管动态扫描显示

摸鱼记录 Day_16 (゚O゚) review 前边已经学习了: 串口接收:Vivado 串口接收优化-CSDN博客 1. 今日摸鱼任务 串口接收数据 并用数码管显示 (゚O゚) 小梅哥视频: 17A 数码管段码显示与动态扫…

06. Redis架构-哨兵

简介 什么是哨兵 Redis的主从模式下,主节点一旦发生故障便不能提供服务,需要人工干预。手动将从节点晋升为主节点,同时还需要修改客户端配置。 Sentinel(哨兵)架构解决了Redis主从人工干预的问题。 Redis Sentinel是…

《鸟哥的Linux私房菜》第6章——总结与习题参考答案

目录 一、 简介 二、一些新了解的指令 1.touch- 修改文件时间或创建新文件 2.umask-新建文件/目录的默认权限 3.文件隐藏属性 4.文件特殊权限 5.file-观察文件类型 三、简答题部分 一、 简介 本章介绍了一些常用的文件与目录指令,包括新建/删除/复制/移动/查…

Spring Cloud Alibaba微服务从入门到进阶(一)(SpringBoot三板斧、SpringBoot Actuator)

Springboot三板斧 1、加依赖 2、写注解 3、写配置 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的一系列用于监控和管理应用程序的工具和服务。 SpringBoot导航端点 其中localhost:8080/actuator/health是健康检查端点,加上以下配置&#xf…

卖木头块(Lc2312)——动态规划

给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块。 每一次操作中,你必须按下述方式之一执行切割操…

在SwiftUI中使用Buider模式创建复杂组件

在SwiftUI中使用Buider模式创建复杂组件 我们在前面的博客闲聊SwiftUI中的自定义组件中聊到了如何在SwiftU中创建自定义组件。 在那里,我们创建了一个非常简单的组件RedBox,它将展示内容增加一个红色的边框。 RedBox非常简单,我们用普通的方…