首页 > 编程语言 >Python os 模块简述

Python os 模块简述

时间:2023-06-17 09:44:34浏览次数:38  
标签:work Python os py worksp 简述 tools Tools

os 模块简介

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

import os

os 模块主要功能

  • 系统相关变量操作
  • 文件和目录操作
  • 路径相关操作

系统相关变量操作

os.name

该属性宽泛地指明了当前 Python 运行所在的环境,实际上是导入的操作系统相关模块的名称。这个名称也决定了模块中哪些功能是可用的,哪些是没有相应实现的。目前有效名称为以下三个:posixntjava。其中posix是 Portable Operating System Interface of UNIX(可移植操作系统接口)的缩写。Linux 和 Mac OS 均会返回该值;nt全称应为“Microsoft Windows NT”,大体可以等同于 Windows 操作系统,因此 Windows 环境下会返回该值;java则是 Java 虚拟机环境下的返回值。因此在我的电脑(win10)上执行下述代码,返回值是nt

import os
print(os.name)
nt

os.environ

返回系统环境变量

print(os.environ)#environ({'4A_JSON': '{"goldbank_ver":"1.0.0.2","url":"http://10.245.7.203:8080/uac/update/"}', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPCODE_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\appcode.vmoptions', 'APPDATA': 'C:\\Users\\admin\\AppData\\Roaming', 'CLION_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\clion.vmoptions', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-LB4N9RT', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'CRT_HOME': 'E:\\Tools\\work_tools\\SecureCRT\\SecureCRT.exe', 'DATAGRIP_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\datagrip.vmoptions', 'DATASPELL_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\dataspell.vmoptions', 'DEVECOSTUDIO_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\devecostudio.vmoptions', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'GATEWAY_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\gateway.vmoptions', 'GOLAND_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\goland.vmoptions', 'HADOOP_HOME': 'E:\\Tools\\hadoop-3.1.0', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\admin', 'IDEA_INITIAL_DIRECTORY': 'D:\\tool\\PyCharm 2020.2.2\\bin', 'IDEA_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\idea.vmoptions', 'JAVA_HOME': 'E:\\Tools\\work_tools\\jdk1.8', 'JETBRAINSCLIENT_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\jetbrainsclient.vmoptions', 'JETBRAINS_CLIENT_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\jetbrains_client.vmoptions', 'LOCALAPPDATA': 'C:\\Users\\admin\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-LB4N9RT', 'M2_HOME': 'E:\\Tools\\work_tools\\apache-maven-3.3.9', 'NLS_LANG': 'SIMPLIFIED CHINESE_AMERICA.ZHS16GBK', 'NUMBER_OF_PROCESSORS': '4', 'ONEDRIVE': 'C:\\Users\\admin\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\admin\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'E:\\worksp_py\\hardwary\\venvop\\Scripts;C:\\Program Files\\Common Files\\Oracle\\Java\\javapath;D:\\tool\\vm\\bin\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;E:\\Tools\\work_tools\\apache-maven-3.3.9\\bin;E:\\Tools\\work_tools\\jdk1.8\\bin;E:\\Tools\\work_tools\\scala-2.12.12\\bin;E:\\Tools\\hadoop-3.1.0\\bin;E:\\Tools\\work_tools\\Git;E:\\Tools\\work_tools\\Git\\mingw64\\bin;E:\\Tools\\work_tools\\Git\\mingw64\\libexec\\git-core;E:\\Tools\\comm_tools\\calibre\\;D:\\tool\\python3.8\\Scripts\\;D:\\tool\\python3.8\\;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PHPSTORM_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\phpstorm.vmoptions', 'PLSQL_HOME': 'D:\\tool\\PLSQL Developer\\plsqldev.exe', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 9, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '8e09', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '(venvop) $P$G', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM_DISPLAY_PORT': '63342', 'PYCHARM_HOSTED': '1', 'PYCHARM_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\pycharm.vmoptions', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'E:\\worksp_py\\hardwary;D:\\tool\\PyCharm 2020.2.2\\plugins\\python\\helpers\\pycharm_matplotlib_backend;D:\\tool\\PyCharm 2020.2.2\\plugins\\python\\helpers\\pycharm_display', 'PYTHONUNBUFFERED': '1', 'RIDER_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\rider.vmoptions', 'RUBYMINE_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\rubymine.vmoptions', 'SCALA_HOME': 'E:\\Tools\\work_tools\\scala-2.12.12', 'SESSIONNAME': 'Console', 'SFTP_HOME': 'E:\\Tools\\work_tools\\winscp432\\WinSCP\\WinSCP.exe', 'STUDIO_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\studio.vmoptions', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\admin\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\admin\\AppData\\Local\\Temp', 'TNS_ADMIN': 'C:\\instantclient_11_2', 'TNS_HOME': 'C:\\instantclient_11_2\\TNSNAMES.ORA', 'USERDOMAIN': 'DESKTOP-LB4N9RT', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-LB4N9RT', 'USERNAME': 'admin', 'USERPROFILE': 'C:\\Users\\admin', 'VIRTUAL_ENV': 'E:\\worksp_py\\hardwary\\venvop', 'WEBIDE_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\webide.vmoptions', 'WEBSTORM_VM_OPTIONS': 'E:\\Tools\\work_tools\\jetbra\\vmoptions\\webstorm.vmoptions', 'WINDIR': 'C:\\Windows', '_OLD_VIRTUAL_PATH': 'C:\\Program Files\\Common Files\\Oracle\\Java\\javapath;D:\\tool\\vm\\bin\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;E:\\Tools\\work_tools\\apache-maven-3.3.9\\bin;E:\\Tools\\work_tools\\jdk1.8\\bin;E:\\Tools\\work_tools\\scala-2.12.12\\bin;E:\\Tools\\hadoop-3.1.0\\bin;E:\\Tools\\work_tools\\Git;E:\\Tools\\work_tools\\Git\\mingw64\\bin;E:\\Tools\\work_tools\\Git\\mingw64\\libexec\\git-core;E:\\Tools\\comm_tools\\calibre\\;D:\\tool\\python3.8\\Scripts\\;D:\\tool\\python3.8\\;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps', '_OLD_VIRTUAL_PROMPT': '$P$G'})
print(os.environ.get('PATH'))#E:\worksp_py\hardwary\venvop\Scripts;C:\Program Files\Common Files\Oracle\Java\javapath;D:\tool\vm\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;E:\Tools\work_tools\apache-maven-3.3.9\bin;E:\Tools\work_tools\jdk1.8\bin;E:\Tools\work_tools\scala-2.12.12\bin;E:\Tools\hadoop-3.1.0\bin;E:\Tools\work_tools\Git;E:\Tools\work_tools\Git\mingw64\bin;E:\Tools\work_tools\Git\mingw64\libexec\git-core;E:\Tools\comm_tools\calibre\;D:\tool\python3.8\Scripts\;D:\tool\python3.8\;C:\Users\admin\AppData\Local\Microsoft\WindowsApps

os.sep

返回系统分隔符

print(os.sep) #\

os.linesep

返回文件换行分隔符

print(os.linesep) #\r\n

os.getcwd()

返回当前工作路径

print(os.getcwd()) #E:\worksp_py\hardwary\100day\thirty

文件相关操作

os.listdir(dirpath)

返回 dirpath 目录下所有文件和目录名

print(os.listdir('.')) #['ostest01.py', '__init__.py']

os.mkdir(dirname)

创建目录

os.mkdir(r"E:\worksp_py\os_test")
print(os.listdir(r"E:\worksp_py"))
#['.idea', 'hardwary', 'hello_world.py', 'langchain', 'leetcode', 'mooc', 'myhard', 'os_test', 'test.py', 'testnumpy']

这里的 r 表示取消转义效果

os.rmdir(path)

删除空目录,若目录下有内容无法删除

os.rmdir(r"E:\worksp_py\os_test")
print(os.listdir(r"E:\worksp_py"))
#['.idea', 'hardwary', 'hello_world.py', 'langchain', 'leetcode', 'mooc', 'myhard', 'test.py', 'testnumpy']

os.remove(path)

删除path下的文件,不能删除目录

os.remove(r"E:\worksp_py\hello_world.py")
print(os.listdir(r"E:\worksp_py"))
#['.idea', 'hardwary', 'langchain', 'leetcode', 'mooc', 'myhard', 'test.py', 'testnumpy']

os.makedirs(diename)

可以递归创建目录,若目录全部存在,则创建失败

os.makedirs(r"E:\worksp_py\os_test\test_sub")
print(os.listdir(r"E:\worksp_py"))
#['.idea', 'hardwary', 'langchain', 'leetcode', 'mooc', 'myhard', 'os_test', 'test.py', 'testnumpy']
print(os.listdir(r"E:\worksp_py\os_test"))
#['test_sub']

os.removedirs(dirname)

递归删除空目录,如有文件无法删除

os.removedirs(r"E:\worksp_py\os_test\test_sub")

os.chdir

切换当前工作路径

print(os.getcwd())
#E:\worksp_py\hardwary\100day\thirty
os.chdir(r"E:\worksp_py\hardwary\100day")
print(os.getcwd())
#E:\worksp_py\hardwary\100day

os.rename(oldname,newname)

重命名

print(os.listdir(r"E:\worksp_py"))
#E:\worksp_py\hardwary\100day
os.rename(r"E:\worksp_py\test.py",r"E:\worksp_py\test-123.py")
print(os.listdir(r"E:\worksp_py"))
['.idea', 'hardwary', 'langchain', 'leetcode', 'mooc', 'myhard', 'os_test', 'test.py', 'testnumpy']
['.idea', 'hardwary', 'langchain', 'leetcode', 'mooc', 'myhard', 'os_test', 'test-123.py', 'testnumpy']

路径相关操作

os.path.dirname(path)

返回目录名

print(os.path.dirname(r"E:\worksp_py\test-123.py"))
#E:\worksp_py

os.path.basename(path)

print(os.path.basename(r"E:\worksp_py\test-123.py"))
#test-123.py

os.path.getsize(path)

返回文件大小,单位字节,若路径是目录食醋胡 4096

print(os.path.getsize(r"E:\worksp_py\test-123.py"))
#12
print(os.path.getsize(r"E:\worksp_py\hardwary"))
#4096

os.path.getctime(path)、os.getatime(path)

获取文件创建时的时间戳,最后一次修改的时间戳

print(os.path.getctime(r"E:\worksp_py\test-123.py"))
#1657867424.3657622
print(os.path.getatime(r"E:\worksp_py\test-123.py"))
#1685172723.6382494

os.path.abspath(path)

获取绝对路径

print(os.path.abspath('.'))
#E:\worksp_py\hardwary\100day\thirty

os.path.join(path,name)

print(os.path.join(r"E:\worksp_py","test-123.py"))
#E:\worksp_py\test-123.py

os.path.exists(path)

判断目录是否存在

print(os.path.exists(r"E:\worksp_py\hardwary\100day\thirty"))
print(os.path.exists(r"E:\worksp_py\hardwary\100day\thirty33"))
True
False

os.path.isfile(path)

判断是否为文件

print(os.path.isfile(r"E:\worksp_py\hardwary\100day\thirty"))
print(os.path.iffile(r"E:\worksp_py\hardwary\100day\thirty\__init__.py"))
False
True

os.path.isdir(path)

判断是否目录

print(os.path.isdir(r"E:\worksp_py\hardwary\100day\thirty"))
print(os.path.isdir(r"E:\worksp_py\hardwary\100day\thirty\__init__.py"))
True
False

标签:work,Python,os,py,worksp,简述,tools,Tools
From: https://www.cnblogs.com/wdh01/p/17436849.html

相关文章

  • Centos6无法使用yum问题
    原因一:网络连接问题,检查是否可以连接外部网络,可以使用ping www.baidu.com检查网络连接是否正常(很少概率)原因二:Centos6系统不再维护,所以关于Centos6的安装包基本都被移除了解决办法:改变源,改为国内的阿里镜像源依次执行下面五行命令即可1、sed-i"s|enabled=1|enabled=0|g"......
  • Python程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Docker 安装 Nacos 注册中心
    废话不多说直接上安装脚本:dockerrun-d--namenacos2.0.4--restart=always\-eMODE=standalone\-eJVM_XMS=256m\-eJVM_XMX=512m\-eSPRING_DATASOURCE_PLATFORM=mysql\-eMYSQL_SERVICE_HOST=localhost\-eMYSQL_SERVICE_PORT=3307\-eMYSQL_SERVICE_DB_NAME=......
  • centos7 中 安装 epel-release
     EPEL(ExtraPackagesforEnterpriseLinux) 是一个由 Fedora 社区志愿者维护的软件包仓库,为 RedHatEnterpriseLinux(RHEL)、CentOS 和 ScientificLinux 等企业级Linux发行版提供额外的软件包。 001、安装sl和nginx(没有安装epel-release)[root@PC1test2]......
  • Python数据类型-字典与集合
    """题目1:下面关于字典的定义正确的是:CA.d={1,}B.d={1,2:3,4}C.d={'name':'xinlan','age':18}D.d={[1,2]:[3,4],'age':18}"""#题目2:请创建一个字典用来表示你自己的个人信息。有哪些key由你自己来决定。my_info={'name':&......
  • Day01 1.4 Python虚拟环境的搭建
    Day011.4Python虚拟环境的搭建【一】虚拟环境介绍(1)虚拟环境优点1、使不同应用开发环境相互独立2、环境升级不影响其他应用,也不会影响全局的python环境3、防止出现包管理混乱及包版本冲突(2)什么是虚拟环境,为什么要有它?它解决了什么问题操作系统装了python3.8使用djang......
  • axios最最基础的用法
    axiosajax请求库,比较热门吗,这里是最基础的发送请求和接收参数  axios闲来无事一,axios的理解和使用一,axios的理解和使用服了,看弹幕给我看的没自信了。axios最基本的使用方式<!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv......
  • python入门学习之《python编程快速上手》
    #《python编程快速上手》1-9章第1-2章:python基础和控制流#python严格区分大小写;#代码行的缩进很重要,一般用4个空格。大多数情况下,代码行缩进告诉python它属于哪个代码块。#python下标从0开始;#行末使用续行字符\,将一行指令写成多行。在[],{},或()中的多行语句,不需要使用反斜......
  • boost asio库的一些记录(个人用)
    BOOSTasio#include<iostream>#include<boost/asio.hpp>#include<boost/date_time/posix_time/posix_time.hpp>intmain(){boost::asio::io_serviceio;//上下文,事件轮询处理框架(类似libevent的event_base)boost::asio::deadline_timert(io,boost::po......