技术标签: python 机器学习 《Python入门到精通》 人工智能 网络安全
「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》
OS标准库是操作系统接口模块,提供了操作系统相关功能的调用函数。
使用OS标准库前,需要导入模块 import os
获取文件或文件描述符的状态,返回一个 stat_result 对象。
stat_result对象有很多可以调用的属性:
还有一些属性需要在Unix系统上才能调用:
修改文件的访问时间和修改时间,修改后需要重新获取 stat_result 对象,才会更新。
语法
os.uime( path, (atime, mtime))
参数
实例
import os
os.utime('newDir/myFile', (1491413771, 1591413771))
statResult = os.stat('newDir/myFile')
print(statResult.st_atime)
print(statResult.st_mtime)
输出:
1491413771.0
1591413771.0
修改文件名或目录名。
语法
os.rename( src, dst )
参数
实例
import os
os.rename('myFile', 'newName')
对于Windows系统,文件名已存在会报错 FileExistsError。
对于Unix系统,将文件重命名为目录会报错 IsADirectoryError;将目录重命名为文件会报错 NotADirectoryError。
递归修改文件名或目录名。先创建所需要的中间目录,重命名后,再调用 removedirs() 删除旧路径中不需要的目录。
语法
os.renames( old, new )
参数
实例
import os
os.renames('myFile', 'newDir/myFile')
修改文件名或目录名,如果文件名已存在,则会静默修改;如果目录已存在,则会报错 OSError。
语法
os.replace( old, new )
参数
实例
import os
os.replace('myFile', 'newDir/myFile')
删除文件,删除目录会报错 FileNotFoundError
语法
os.remove( path )
参数
实例
import os
os.remove('myFile')
获取当前工作目录,也就是当前所在路径,返回字符串类型。
import os
print(os.getcwd())
输出:
E:\data\PrCharm\pythonProject1
获取当前工作目录,二进制序列(bytes)类型。
import os
print(os.getcwdb())
输出:
b'E:\\data\\PrCharm\\pythonProject1'
修改当前工作目录
语法
os.chdir( path )
参数
实例
import os
os.chdir('E://data')
print(os.getcwd())
输出:
E:\data
创建目录,如果目录已存在会报错 FileExistsError,如果路径中父目录不存在会报错 FileNotFoundError。
语法
os.mkdir( path, mode )
参数
实例
import os
os.mkdir('myDir')
当前目录下创建了目录
创建多级目录,上级目录不存在也会自动创建。
语法
os.makedirs( path, mode )
参数
实例
import os
os.makedirs('myDir/dir1')
当前目录下创建了目录
删除目录,如果目录不存在,会报错 FileNotFoundError;如果目录不为空,会报错 OSError。
语法
os.rmdir( path )
参数
实例
import os
os.rmdir('newDir')
递归删除多级目录,如果删除了最后一级目录,会尝试依次删除上级目录(删除不掉不会报错,因为大多是因为目录不为空)。
语法
os.removedirs( path )
参数
实例
import os
os.removedirs('myDir/dir1')
获取操作系统的类型,只有三个值nt
、posix
、java
比如,我的电脑是Windows,就返回 nt
import os
print(os.name)
输出:
nt
获取系统环境变量等各种系统信息(导入OS模块时自动收集),字典格式,可以根据建获取
Windows常用字段
os.environ['HOMEPATH'] # 当前用户主目录。
os.environ['TEMP'] # 临时目录路径。
os.environ["PATHEXT"] # 可执行文件。
os.environ['SYSTEMROOT'] # 系统主目录。
os.environ['LOGONSERVER'] # 机器名。
Linux常用字段
os.environ['USER'] # 当前使用用户。
os.environ['LC_COLLATE'] # 路径扩展的结果排序时的字母顺序。
os.environ['SHELL'] # 使用shell的类型。
os.environ['LAN'] # 使用的语言。
os.environ['SSH_AUTH_SOCK'] # ssh的执行路径。
环境变量的增删改查操作
import os
environ = os.environ
# 新增
environ['环境变量名'] = '环境变量值'
# 删除
del environ['环境变量名']
# 修改
environ['环境变量名'] = '新环境变量值'
# 查询(变量不存在则返回默认值)
environ['环境变量名']
environ.get('环境变量名', '默认值')
# 判断(存在返回True,不存在返回False)
'环境变量值' in environ
根据环境变量名,获取环境变量的值,如果环境变量名不存在,就返回default。
语法
os.getenv( key, default )
参数
实例
import os
print(os.getenv('TEMP'))
输出:
C:\Users\WANGYU~1\AppData\Local\Temp
获取可执行文件路径,从 environ 对象中,返回可执行文件目录的列表。
语法
os.get_exec_path( environ )
参数
实例
import os
print(os.get_exec_path())
输出:
['E:\\data\\PrCharm\\pythonProject1\\venv\\Scripts', 'C:\\......
返回系统的CPU数量,不确定就返回None。
语法
os.cpu_count()
实例
import os
print(os.cpu_count())
输出:
8
获取当前登录用户,准确来说,是通过控制终端进程进行登录的用户名。
import os
print(os.getlogin())
获取当前进程ID
import os
print(os.getpid())
输出:
8212
获取当前进程的父进程ID
import os
print(os.getppid())
输出:
14132
获取指定大小的随机字节,常用于加密。
语法
os.urandom( size )
参数
实例
mport os
print(os.urandom(8))
输出:
b'\xb1\n\xbaw2\x88\x84\xf8'
创建和管理进程的函数。
返回当前的全局进程时间,列表形式,有5个属性。
Windows系统上,只有user、system两个属性有值,其他均为0。
语法
os.times()
实例
import os
times = os.times()
print(times)
输出:
nt.times_result(user=0.046875, system=0.109375, children_user=0.0, children_system=0.0, elapsed=0.0)
发送SIGABRT
信号给当前进程,用来终止进程,如果进程没有中断,则函数不会返回。
语法
os.abort()
比如,当程序出现严重错误时,调用 os.abort() 终止进程。
import os
try:
# 业务代码
pass
except:
os.abort()
补充:
执行系统命令,并在控制台输出执行结果
语法
os.system( commend )
参数
实例
import os
os.system('ping www.baidu.com')
输出:
���� Ping www.a.shifen.com [39.156.66.18] ���� 32 �ֽڵ�����:
���� 39.156.66.18 �Ļظ�: �ֽ�=32 ʱ��=17ms TTL=50
���� 39.156.66.18 �Ļظ�: �ֽ�=32 ʱ��=16ms TTL=50
通过Python执行系统命令,返回命令的执行结果(文本类型的对象)。
语法
os.popen( command, mode, buffer )
参数
r
(只读模式)实例
import os
out = os.popen('ping www.baidu.com')
print(out.read())
输出:
正在 Ping www.a.shifen.com [39.156.66.14] 具有 32 字节的数据:
来自 39.156.66.14 的回复: 字节=32 时间=13ms TTL=50
来自 39.156.66.14 的回复: 字节=32 时间=48ms TTL=50
自动打开文件,绝对路径要用/
,相对路径要用 \
语法
os.startfile( path )
实例
import os
os.startfile('newDir\myFile')
执行后,桌面上会打开指定的文件。
OS模块所有函数都会抛出OSError
及其子类
OSError
的子类
当在设置为非阻塞操作的对象(例如:套接字)上,执行阻塞操作时触发。
OSError
的子类
子进程上的操作失败时触发。
OSError
的子类
与连接相关的问题的基类,常见的有它的子类。
ConnectionError
的子类
管道中断时触发。
管道是单向通信的,在管道另一端关闭时写入,或者在已经关闭的套接字上写入,都会导致管道中断。
ConnectionError
的子类
连接被对端终止时触发。
这种异常通常意味着网络连接被意外中断,可能是服务器出现故障、网络拥堵等原因导致的,比如 服务器返回的响应超时或断开了连接。
ConnectionError
的子类
连接被对方拒绝时触发。
常见的原因有:
ConnectionError
的子类
对端重置连接时触发。
常见的原因有:
OSError
的子类
创建的文件或目录已经存在时触发
OSError
的子类
请求的文件或目录不存在时触发
OSError
的子类
系统调用被传入信号中断时触发
OSError
的子类
对目录执行文件操作时触发
OSError
的子类
对文件执行目录操作时触发
OSError
的子类
执行的操作没有足够的访问权限时触发
OSError
的子类
指定的进程不存在时触发
OSError
的子类
系统功能在系统级别的超时时触发
文章浏览阅读417次。程序集需要添加的引用是:ICSharpCode.SharpZipLib.dll使用实例: //执行压缩 ClsZip.Zip(downZipPath, sourceTopPath, 1, "", allFilePath); //执行下载 ctrlDcAllGrxx.download(downZi...
文章浏览阅读85次。为什么80%的码农都做不了架构师?>>> ...
文章浏览阅读558次。【前言】 组长前段时间给了个任务让研究下如何优化Mysql性能, 于是我就在网上搜索了些资料,整合了一下分享给大家。【正文】1.减少不使用查询缓存的查询语句 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续_组长说考虑性能让我加索引
文章浏览阅读291次。前言闲来无事,穷折腾。最近我朋友在找工作,遇到一些面试题,或者遇到一些问题会及时跟我讨论。我则作为他的幕后军师,为他出谋划策。接下来我分享给大家一道简单的面试题。题目统计字符串中出现最多的字母与个数?分析1、验证数据是否字符串2、字符串转换为数组3、统计字符串出现的次数例:var str = 'aaaadddddssssgdhssssbbbbbuuuwmopqlsabcfws..._统计字符串中字母个数或统计最多字母数。
文章浏览阅读5.4k次,点赞13次,收藏111次。摘要:本案例讲述的案例为生鲜农产品冷链物流配送路径优化,涉及的目标函数成本包括碳排放成本、固定成本、运输成本、货损变质成本、时间惩罚成本。目标种类:单目标模型。求解方法:基础版蚁群算法+改进版蚁群算法。整体对标层级:硕士_配送仓库设计算法模型有哪些
文章浏览阅读579次,点赞27次,收藏23次。面向能源与环境需求,长期从事新能源材料与器件领域,重点围绕电化学能源存储与转化方向的关键材料与器件设计(包括锂/钠离子电池、超级电容器、全解水制氢、燃料电池、新型能源存储与转化器件等)。根据斯坦福大学的数据,他是2019年、2020年和2021年世界上前2%被引用最多的研究人员。他也是IEEE高级会员。会议将聚集相关领域内的专家学者和科研人员,围绕“能源中的光学材料”、“光伏发电”、“能源并网技术”等能源再生和发展研究展开讨论,共享研究成果和前沿技术,探讨发展趋势,扩宽科研思路,推进学术成果朝产业化发展。_第八届可再生能源与发展国际研讨会(iwred 2024)口号和使命
文章浏览阅读2.1k次。怎样计算缩放比例?有四种方法:1.对角线法,以对角线长度为准,其伸长者为放大,缩短者为缩小,其底边并行线即为新尺寸。2.计算器法,先输入欲缩放宽度,按除键,再输入原稿尺寸,再按%即得。3.比例尺法,将比例尺上方设定原稿宽度,与比例尺下方新尺寸对齐,即可直接找出缩放百分比。4.公式法,套入(原稿宽度/原稿高度═新宽度/新..._图像缩放算法
文章浏览阅读378次。创建如上图的四级列表:一、分别基于标题2、3、4(同时也是二三四级样式)创建每个标题的新样式。二、接下来是最后两步完成_word里1234自动生成
文章浏览阅读1.5k次。1、利用tensrfow的C++API进行嵌入式部署;2、加载pb模型进行前向推理;2、实现目标检测网络(YOLO V3)结果解析;_c++ tensorfow
文章浏览阅读7.1k次。python2 中可以用string.atoi 在python3中会报错替换的方案是string.atoi(your_str)替换为int(your_str)这个代码python2和python3都可以运行._module 'string' has no attribute 'atoi
文章浏览阅读1.4k次,点赞23次,收藏19次。在大语言模型(LLM)端侧部署上,基于 MNN 实现的 mnn-llm 项目已经展现出业界领先的性能,特别是在 ARM 架构的 CPU 上。目前利用 mnn-llm 的推理能力,qwen-1.8b在mnn-llm的驱动下能够在移动端达到端侧实时会话的能力,能够在较低内存(_大模型 llm 推理详解 prefill decode
文章浏览阅读323次。第一步:模块安装pip install pandas第二步:使用(单个工作表为例)说明:如果有多个工作表,那么只要指定sheetname=索引,(第一个工作表为0,第二个工作表为1,以此类推)pd.read_excel(io, sheetname=0,header=0,skiprows=None,index_col=None,names=None,arse_cols=None,date_parse..._webui自动化 使用panda 读取某个单元格的数据 底层封装