位置: IT常识 - 正文

Python标准库之os(python标准库在哪个目录)

编辑:rootadmin
Python标准库之os 文章目录1. OS标准库简介2. OS标准库常用函数和属性2.1 文件和目录2.1.1 `os.getcwd()`2.1.2 `os.mkdir(path, mode=0o777, *, dir_fd=None)`2.2 os.path常见路径操作2.2.1 `os.path.abspath(path)`2.2.2 `os.path.basename(path)`2.2.3 `os.path.dirname(path)`2.2.4 `os.path.exists(path)`2.2.5 `os.path.isabs(path)`2.2.6 `os.path.isfile(path)`2.2.7 `os.path.isdir(path)`2.2.8 `os.path.islink(path)`2.2.9 `os.path.join(path, *paths)`2.2.10 `os.path.normcase(path)`2.2.11 `os.path.split(path)`2.2.12 `os.path.splitext(path)`2.3 其他常用命令2.3.1 `os.name`2.3.2 `os.__file__`3. 参考文献1. OS标准库简介

推荐整理分享Python标准库之os(python标准库在哪个目录),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的标准库,python标准库在哪个目录,python2.7标准库,python标准库的概念,python标准库在哪个目录,python标准库在哪个目录,python标准库 os,python标准库 os,内容如对您有帮助,希望把文章链接给更多的朋友!

顾名思义,OS表示Operating System,即操作系统。OS标准库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数,具体安装位置可通过导入os模块查看os.__file__属性得到。当需要在Python代码中调用OS相关功能实现业务逻辑或者无法直接使用命令行工具时,我们就需要考虑导入此模块,因此有必要进行深入学习。

2. OS标准库常用函数和属性2.1 文件和目录2.1.1 os.getcwd()

返回表示当前工作目录的字符串

print("当前工作目录为:{}".format(os.getcwd())) # 返回当前工作目录

2.1.2 os.mkdir(path, mode=0o777, *, dir_fd=None)

以指定数字表示的权限模式mode创建一个名为path的目录。某些系统会忽略 mode,如果没有忽略,那么Linux系统来说,新建文件夹的权限=指定数字表示的权限模式mode-当前系统用户的umask默认权限,如下所示

"""Linux操作系统可通过umask命令获得4个八进制数表示的默认权限,root用户默认是0022,普通用户默认是 0002第1位数代表文件所具有的特殊权限(SetUID、SetGID、Sticky BIT),后3位数表示表示umask权限值分别对应所有者、用户组、其他人的权限值,权限与数字对应关系为:r->4,w->2,x->1"""exit_code=os.system("umask")

"""文件夹模式mode赋值为十进制511,等价于八进制0o777"""set_mode=511os.mkdir(path="./cyr",mode=set_mode) # 在当前目录创建名为cyr的文件夹# 长格式查看新创建的文件夹cyr可知其权限字符串为rwxr-xr-x,等价于转换后的数字权限111101101!ls -l | grep cyr

umask_value=0o0022 # 当前系统用户八进制表示umask默认权限new_dir_mode=set_mode-umask_valueprint("新建文件夹的权限为:{:b}".format(new_dir_mode))

os.rmdir(path, *, dir_fd=None)

移除(删除)目录 path。如果目录不存在或不为空,则会分别抛出 FileNotFoundError 或 OSError 异常。

os.rmdir("./cyr") # 删除空文件夹成功,无法查到cyr目录!ls | grep cyros.rmdir("./why") # 删除不存在的文件夹FileNotFoundError报错

os.rmdir("./nnunet/") # 删除不为空文件夹OSError报错

os.chdir(path)

将当前工作目录更改为 path

print("切换前的当前工作目录为:{}".format(os.getcwd())) # 返回当前工作目录dst_path="/root" # 目标文件夹os.chdir(dst_path) # 将当前工作目录切换为/rootprint("切换后的当前工作目录为:{}".format(os.getcwd())) # 返回当前工作目录

os.listdir(path='.')

返回一个包含指定path下所有文件和目录名称的按任意顺序排列的列表,特殊条目’.‘和’…'除外

dst_path="/code/" # 目标目录dirs_ls=os.listdir(path=dst_path) # 获得指定目录下全部文件和文件夹名称列表print(dirs_ls)

2.2 os.path常见路径操作2.2.1 os.path.abspath(path)

返回路径path 的绝对路径(标准化的),相当于字符串拼接,路径path不存在也不会报错

relative_path="tests/test_steps_for_sliding_window_prediction.py" # 路径path存在print("{}对应的绝对路径为{}".format(relative_path,os.path.abspath(relative_path)))

no_path="tests/none.py" # 路径path不存在print("{}对应的绝对路径为{}".format(relative_path,os.path.abspath(no_path)))

2.2.2 os.path.basename(path)

返回路径 path 的基本名称

full_pathname="/proc/bus/pci/3a/08.0" # 路径path存在print("全路径名称对应的文件名为{}".format(os.path.basename(full_pathname)))

no_full_pathname="/demo/none.cpp" # 路径path不存在print("全路径名称对应的文件名为{}".format(os.path.basename(no_full_pathname)))

2.2.3 os.path.dirname(path)

返回路径 path 的目录名称

full_pathname="/proc/bus/pci/3a/08.0" # 路径path存在print("全路径名称对应的目录名称为{}".format(os.path.dirname(full_pathname)))

no_full_pathname="/demo/none.cpp" # 路径path不存在print("全路径名称对应的目录名称为{}".format(os.path.dirname(no_full_pathname)))

2.2.4 os.path.exists(path)

判断path是否指向一个已存在路径或已打开的文件描述符,存在返回True,不存在返回False

full_pathname="/proc/bus/pci/3a/08.0" # 路径path存在print("全路径名称对应的目录是否存在?{}".format(os.path.exists(full_pathname)))

no_full_pathname="/demo/none.cpp" # 路径path不存在print("全路径名称对应的目录是否存在?{}".format(os.path.exists(no_full_pathname)))

2.2.5 os.path.isabs(path)

判断path是否为一个绝对路径,是则返回True,不是或不存在则返回False。在 Unix 上,它就是以斜杠开头,而在 Windows 上,它可以是去掉驱动器号后以斜杠(或反斜杠)开头。

abs_pathname="/proc/bus/pci/3a/08.0" # 路径path存在print("全路径名称对应的目录是否为绝对路径?{}".format(os.path.isabs(abs_pathname)))

rel_pathname="./nnunet/__init__.py" # 路径path是相对路径print("全路径名称对应的目录是否绝对路径?{}".format(os.path.isabs(rel_pathname)))

no_pathname="./nnunet/none.py" # 路径path是不存在print("全路径名称对应的目录是否绝对路径?{}".format(os.path.isabs(no_pathname)))

2.2.6 os.path.isfile(path)Python标准库之os(python标准库在哪个目录)

若path为指向一个已存在文件的符号链接或一个已存在文件路径,返回True。若path为一个文件夹路径或不存在路径,返回False。

ls -li /opt/conda/bin/python* # 带inode节点信息并长格式查看python开头的文件和文件夹

由上图可发现/opt/conda/bin/python为一个符号链接(软链接)指向一个已存在文件路径/opt/conda/bin/python3.7

abs_pathname="/opt/conda/bin/python3.7" # path为一个已存在文件路径print("全路径名称对应的文件是否存在?{}".format(os.path.isfile(abs_pathname)))

symbolic_link="/opt/conda/bin/python" # path为指向一个已存在文件/opt/conda/bin/python3.7的符号链接print("全路径名称对应的文件是否存在?{}".format(os.path.isfile(symbolic_link)))

abs_path="/opt/conda/bin/" # 文件夹路径print("全路径名称对应的文件是否存在?{}".format(os.path.isfile(abs_path)))

no_full_pathname="/demo/none.cpp" # 路径path不存在print("全路径名称对应的文件是否存在?{}".format(os.path.isfile(no_full_pathname)))

2.2.7 os.path.isdir(path)

若path为指向一个已存在文件夹的符号链接或一个已存在文件夹路径,返回True。若path为一个文件路径或不存在路径,返回False。

ls /code/nnunet/ # 查看已存在文件夹路径/code/nnunet/

ln -s /code/nnunet/ ./symlink2codennunet # 当前目录即root下创建一个软链接指向一个已存在文件夹路径/code/nnunet/ls -l /root/

由上图可知root用户主目录下存在一个软链接symlink2codennunet指向一个已存在文件夹路径

exist_dir_path="/code/nnunet/"# path为一个已存在文件夹路径print("全路径名称对应的文件夹是否存在?{}".format(os.path.isdir(exist_dir_path)))

exist_dir_symlink="/root/symlink2codennunet/"# path为指向一个已存在文件夹的符号链接print("全路径名称对应的文件夹是否存在?{}".format(os.path.isdir(exist_dir_symlink)))

exist_file_path="/opt/conda/bin/python3.7"# path为一个已存在文件路径print("全路径名称对应的文件夹是否存在?{}".format(os.path.isdir(exist_file_path)))

no_path="/demo/none.cpp" # 路径path不存在print("全路径名称对应的文件夹是否存在?{}".format(os.path.isdir(no_path)))

2.2.8 os.path.islink(path)

若path代表一个已存在的符号链接,则返回True,反之则返回False。如果 Python 运行时不支持符号链接,则总是返回 False

exist_symbolic_link="/opt/conda/bin/python" # path为指向一个已存在的符号链接print("全路径名称对应的符号链接是否存在?{}".format(os.path.islink(exist_symbolic_link)))

no_symbolic_link="/demo/no_link" # path为指向一个不存在的符号链接print("全路径名称对应的符号链接是否存在?{}".format(os.path.islink(no_symbolic_link)))

exist_file_path="/opt/conda/bin/python3.7"# path为一个已存在文件路径print("全路径名称对应的符号链接是否存在?{}".format(os.path.islink(exist_file_path)))

exist_dir_path="/root/"# path为一个已存在文件夹路径print("全路径名称对应的符号链接是否存在?{}".format(os.path.islink(exist_dir_path)))

2.2.9 os.path.join(path, *paths)

拼接两个或多个路径部分,按需要插入/。如果参数中某个部分是绝对路径,则绝对路径前的路径都将被丢弃,并从绝对路径部分开始连接。如果最后一部分为空,则结果将以分隔符结尾。

previous_path,abs_dirname,basename,empty_part="model","/code","demo.py",""print("参数中某个部分是绝对路径拼接后为{}".format(os.path.join(previous_path,abs_dirname,basename)))

print("拼接两个或多个路径部分,按需要插入'/'拼接后为{}".format(os.path.join(previous_path,basename)))

print("最后一部分为空以分隔符结尾{}".format(os.path.join(previous_path,basename,empty_part)))

2.2.10 os.path.normcase(path)

规范路径名称的大小写。 在 Windows 上,将路径名称中的所有字符转为小写,并将正斜杠转为反斜杠。 在其他操作系统上,将路径不加修改地返回。

Linux操作系统

print("当前操作系统模块名为:{}".format(os.name))windows_style_path=r"C:/Users\defaultuser0/APPData"print("Windows路径规范化后为{}".format(os.path.normcase(windows_style_path)))

Windows操作系统

2.2.11 os.path.split(path)

将路径 path 拆分为一对,即 (head, tail),其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head 和 tail 均为空。head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)。

norm_path="/nnunet/configuration.py" # 一般路径ends_with_slash_path="/code/nnunet/" # 以斜杠结尾的路径no_slash_path="HIP_Logo.png" # 没有斜杠的路径empty_path="" # 空路径root_path="/" # 根目录print("一般路径head={},tail={}".format(*os.path.split(norm_path)))print("以斜杠结尾的路径head={},tail={}".format(*os.path.split(ends_with_slash_path)))print("没有斜杠的路径head={},tail={}".format(*os.path.split(no_slash_path)))print("空路径head={},tail={}".format(*os.path.split(empty_path)))print("根目录head={},tail={}".format(*os.path.split(root_path)))

2.2.12 os.path.splitext(path)

将路径 path 拆分为一对,即 (root, ext),使 root + ext == path,其中 ext 为空或以英文句点开头,且最多包含一个句点。路径前的句点将被忽略,例如 splitext(‘.cshrc’) 返回 (‘.cshrc’, ‘’)。

dir_path="/code/nnunet/" # 文件夹路径multi_dot_file_path="/code/i.thy.py" # 包含多个句点的文件路径single_dot_file_path="/code/we.py" # 包含单个句点的文件路径starts_with_dot_file_path=".bashrc" # 以句点开头的路径print("文件夹路径root={},ext={}".format(*os.path.splitext(dir_path)))print("包含多个句点的文件路径root={},ext={}".format(*os.path.splitext(multi_dot_file_path)))print("包含单个句点的文件路径root={},ext={}".format(*os.path.splitext(single_dot_file_path)))print("以句点开头的路径root={},ext={}".format(*os.path.splitext(starts_with_dot_file_path)))

2.3 其他常用命令2.3.1 os.name

导入的依赖特定操作系统的模块的名称,返回’posix’表示Linux,'nt’表示Windows,'java’表示Java虚拟机

print("当前操作系统平台名称为{}".format(os.name))

2.3.2 os.__file__

以字符串形式返回os模块安装的绝对路径

import os print("os模块安装绝对路径是{}".format(os.__file__))

3. 参考文献os — 操作系统接口模块 — Python 3.7.13 文档os.path — 常见路径操作 — Python 3.7.13 文档Linux umask详解:令新建文件和目录拥有默认权限 (biancheng.net)Linux chmod命令:修改文件或目录的权限 (biancheng.net)
本文链接地址:https://www.jiuchutong.com/zhishi/299543.html 转载请保留说明!

上一篇:[深度学习] 基于切片辅助超推理库SAHI优化小目标识别

下一篇:Vue项目实战——实现一个任务清单(学以致用,两小时带你巩固和强化Vue知识点)(vue做项目的流程)

  • 企业收到购买标书的增值税专用发票可以抵扣吗?
  • 印花税需要计提吗?怎么做会计分录
  • 证券交易印花税税率是多少
  • 独立法人和法人独资的区别
  • 融资租赁租出的固定资产需要计提折旧吗
  • 如何理解合并报表中少数股东损益的抵消
  • 股份支付为什么计入股本溢价
  • 递延所得税资产和递延所得税负债
  • 现在会计账簿还需要交印花税吗
  • 申报从租计征的房产税必须提前备案吗
  • 用固定资产投资怎么做账
  • 应付票据和应付账款有什么区别
  • 上市公司股价变动谁受益
  • 给客户多开了发票,下月少开可以吗?
  • 免费给客户提供服务怎么做账
  • 研究开发费用的归集
  • 抬头 个人
  • 小企业工资薪酬制度
  • 交易性金融资产入账价值怎么计算
  • 提取法定盈余公积金会计分录
  • 进口的原材料没有发票
  • 企业征地补偿支出需要什么凭据做账?
  • 印刷费怎么开发票
  • 兼职获得员工旅游资源
  • 广告公司认定一般多少钱
  • 收取会员费收入会计分录
  • 申请办理银行承兑流程
  • 一般纳税人开普票税率是3%还是13%
  • 未确认收货可以评价吗
  • 转账银行汇票遗失后可以申请办理
  • win11我的电脑不在桌面显示
  • win10蓝牙添加设备闪退
  • 一借多贷的会计分录怎么写
  • 存货正常报废账务处理
  • php session_start
  • 房开企业增值税扣除土地价款包括契税吗
  • h5页面跳转小程序不显示按钮
  • 使用vscode开发vue例子
  • 为什么税前利润加可抵扣暂时性差异
  • 会计如何分录
  • 公司注销方便吗
  • 浅谈人工智能时代财务会计向管理会计的转型
  • php文件夹下所有文件下载
  • 出口退税附加税的计税基础
  • 利润分配的账务处理会计分录
  • 进项税没入账补入账分录
  • 银行不良资产核销后怎么处理
  • mysql备份导入
  • 购买一台电脑2400元贵吗
  • 租店铺需要什么流程需要注意什么事项?
  • 净利润弥补以前年度亏损
  • 小规模纳税企业销售货物或者提供应税劳务
  • 工会经费为0是不用申报的?
  • 新公司成立需要刻哪些章
  • 一步一步的简单
  • sql语句分组汇总
  • 固定资产账务处理候文江视频
  • 饭店开业多久可以正常
  • 职工福利费的比例
  • 预付工程款会计分录
  • 其他业务收入借贷方向表示
  • 注册资金未缴齐怎么处理
  • 暂估材料发票长期不到
  • 以旧验新发票
  • 坏账准备对资产负债表影响
  • 新买的车没有牌能上路吗
  • 新建企业应如何建账
  • 商业企业注销应检查哪方面的问题
  • windows server 2008.
  • awk中使用sed
  • scm是啥
  • win7系统屏幕保护设置禁用如何开启
  • linux网卡添加vlan
  • 单线程语言有哪些
  • python必学的os模块详解
  • Node.js中的construct构造函数
  • jQuery实现获取table表格第一列值的方法
  • jquery自定义的方法有哪些
  • 电子税务局第一次申请发票流程
  • 开通税务在哪里弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设