os模块提供了很多允许你的程序和操作系统直接交互的功能

  • 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()
#test.py
import os
print(os.getcwd())
D:\ProgramLearning>python Py_program\test.py
D:\ProgramLearning #显示的是当前python解释器所在的目录,而不是文件所在目录
  • 返回指定目录下的所有文件和目录名:os.listdir()
#test.py
import os
print(os.listdir('.'))
D:\ProgramLearning>python Py_program\test.py #打印ProgramLearning下的目录
['HuJiang_Python', 'Py_program'] D:\ProgramLearning>cd Py_program D:\ProgramLearning\Py_program>python test.py #打印Py_program下的目录
['.idea', '01模块一.md', '3thMenu.py', 'account.txt', 'Dic_test.py', 'file_rewrite.py', 'function_test.py', 'my_module.py', 'Shopping.py', 'test.py', 'test1.py', 'U2_test.py', 'venv', '电视剧.txt', '虚拟环境下载.docx']
  • 函数用来删除一个文件:os.remove()
  • 删除多个目录:os.removedirs(r"C:\python")
  • 检验给出的路径是否是一个文件:os.path.isfile()
  • 检验给出的路径是否是一个目录:os.path.isdir()
  • 判断是否是绝对路径:os.path.isabs()
  • 检验给出的路径是否真的存在:os.path.exists()
  • 返回一个路径的目录名和文件名:os.path.split() 把文件名和目录分开
    • e.g  os.path.split('/home/swaroop/byte/code/poem.txt')   结果:('/home/swaroop/byte/code', 'poem.txt')
  • 分离扩展名:os.path.splitext()  把后缀名分开

    • e.g  os.path.splitext('/usr/local/test.py')  结果:('usr/local/test', '.py')
  • 获取路径名:os.path.dirname()
  • 获取绝对路径:os.path.abspath()
  • 获取文件名:os.path.basename()
  • 运行shell命令:os.system()
  • 读取操作系统环境变量HOME的值:os.getenv('HOME')
  • 返回操作系统所有的环境变量:os.environ
>>> os.environ
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Thinkpad\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'LAPTOP-KUESMB62', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'CONFIGSETROOT': 'C:\\Windows\\ConfigSetRoot', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Thinkpad', 'LOCALAPPDATA': 'C:\\Users\\Thinkpad\\AppData\\Local', 'LOGONSERVER': '\\\\LAPTOP-KUESMB62', 'NUMBER_OF_PROCESSORS': '', 'ONEDRIVE': 'C:\\Users\\Thinkpad\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'D:\\Software\\Anaconda\\Anaconda;D:\\Software\\Anaconda\\Anaconda\\Library\\mingw-w64\\bin;D:\\Software\\Anaconda\\Anaconda\\Library\\usr\\bin;D:\\Software\\Anaconda\\Anaconda\\Library\\bin;D:\\Software\\Anaconda\\Anaconda\\Scripts;C:\\Python\\Scripts\\;C:\\Python\\;C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS Client\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Windows\\System32\\OpenSSH\\;D:\\Software\\Python解释器\\Scripts\\;D:\\Software\\Python解释器\\;C:\\Users\\Thinkpad\\AppData\\Local\\Microsoft\\WindowsApps;;D:\\Software\\VSCode\\Microsoft VS Code\\bin', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 9, GenuineIntel', 'PROCESSOR_LEVEL': '', 'PROCESSOR_REVISION': '8e09', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '$P$G', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\Thinkpad\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\Thinkpad\\AppData\\Local\\Temp', 'USERDOMAIN': 'LAPTOP-KUESMB62', 'USERDOMAIN_ROAMINGPROFILE': 'LAPTOP-KUESMB62', 'USERNAME': 'Thinkpad', 'USERPROFILE': 'C:\\Users\\Thinkpad', 'WINDIR': 'C:\\Windows'})
  • 设置系统环境变量,仅程序运行时有效:os.environ.setdefault('HOME','/home/alex')
  • 给出当前平台使用的行终止符:os.linesep Windows使用'\r\n',Linux 和 MAC 使用'\n'
>>> os.linesep
'\r\n'
  • 指示你正在使用的平台:os.name 对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
>>> os.name
'nt'
  • 重命名:os.rename(old, new)
  • 创建多级目录:os.makedirs(r"C:\python\test")
>>> os.makedirs('test/sdfs/e') #test 不存在时会自动创建
  • 创建单个目录:os.mkdir("test")
>>> os.mkdir('test/sdfs/e') #test 不存在时无法创建,只能创建一个
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'test/sdfs/e'
  • 获取文件属性:os.stat(file)
>>> os.listdir('.')
['.continuum', '.oracle_jre_usage', '.PyCharm2018.3', '.vscode', '3D Objects', 'AppData', 'Application Data', 'Contacts', 'Cookies', 'Desktop', 'Documents', 'Downloads', 'Favorites', 'IntelGraphicsProfiles', 'Links', 'Local Settings', 'MicrosoftEdgeBackups', 'Music', 'My Documents', 'NetHood', 'NTUSER.DAT', 'ntuser.dat.LOG1', 'ntuser.dat.LOG2', 'NTUSER.DAT{bc3b0ccb-3b0e-11e9-ac14-a81e84e70c20}.TM.blf', 'NTUSER.DAT{bc3b0ccb-3b0e-11e9-ac14-a81e84e70c20}.TMContainer00000000000000000001.regtrans-ms', 'NTUSER.DAT{bc3b0ccb-3b0e-11e9-ac14-a81e84e70c20}.TMContainer00000000000000000002.regtrans-ms', 'ntuser.ini', 'OneDrive', 'Pictures', 'PrintHood', 'Recent', 'Saved Games', 'Searches', 'SendTo', 'Templates', 'test', 'Videos', '「开始」菜单']
>>> os.stat('test')
os.stat_result(st_mode=16895, st_ino=12103423998638553, st_dev=1849078143, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1552273101, st_mtime=1552273099, st_ctime=1552273099)
#st_mode:权限 st_ino:字节号 st_dev:文件所在设备ID st_nlink:链向此文件的连接数(硬连接) st_uid:用户ID st_gid:使用者的团队ID st_size:文件大小 st_atime:最近存取时间 st_mtime:最近修改时间 st_ctime:最近权限修改时间
  • 修改文件权限与时间戳:os.chmod(file)
  • 终止当前进程:os.exit() #python2 有,python3没有
  • 获取文件大小:os.path.getsize(filename)
  • 结合目录名与文件名:os.path.join(dir,filename)
>>> os.path.join('root','tset','t.py')
'root\\tset\\t.py'
  • 改变工作目录到dirname:os..chdir(dirname)
>>> os.getcwd()
'C:\\Users\\Thinkpad'
>>> os.chdir('/cmder')
>>> os.getcwd()
'C:\\cmder'
  • 获取当前终端的大小:os.get_terminal_size()
>>> os.get_terminal_size()
os.terminal_size(columns=120, lines=30)
>>> os.get_terminal_size()#拖动终端,以此来决定在终端上书写多少东西
os.terminal_size(columns=75, lines=30)
  • 杀死进程:os.kill(10884,signal.SIGKILL)

Python全栈之路----常用模块----os模块的更多相关文章

  1. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  2. python 全栈开发,Day28(复习,os模块,导入模块import和from)

    一.复习 collections 增加了一些扩展数据类型 :namedtuple orderdict defaltdict队列和栈time 时间 三种格式 : 时间戳 结构化 字符串random 随机 ...

  3. Python全栈之路----常用模块学习----模块的种类和导入方法

    什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...

  4. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  5. Python全栈之路----常用模块----subprocess模块

    我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...

  6. Python全栈之路----常用模块----软件开发目录规范

    目录基本内容 log  #日志目录 conf  #配置目录 core/luffycity  #程序核心代码目录  #luffycity 是项目名,建议用小写 libs/modules  #内置模块 d ...

  7. Python全栈之路----常用模块----re 模块

    正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是 re. re的匹配语法有以下几种 re.match 从头开始匹配 re.search 匹配包含 re.fin ...

  8. Python全栈之路----常用模块----logging模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  9. Python全栈之路----常用模块----shutil模块

    高级的 文件.文件包.压缩包 处理模块   参考Python之路[第四篇]:模块     #src是原文件名,fdst是新文件名 shutil.copyfileobj(fsrc, fdst[, len ...

随机推荐

  1. 【Alpha】Scrum Meeting 1

    前言 第1次会议在3月17日由PM在教一317召开. 主要确定了选题,并对目标进行了初步的确定.时长90min. 任务分配 姓名 当前阶段任务 下阶段任务 吴昊 确定项目方向,本地部署代码,完成团队介 ...

  2. event.target.dataset

    dataset并不是典型意义上的JavaScript对象,而是个DOMStringMap对象,DOMStringMap是HTML5一种新的含有多个名-值对的交互变量. 1.event.target.d ...

  3. FastJson中JSONObject用法及常用方法总结

    本文为博主原创,未经允许不得转载: 最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下: JSONobject是Fa ...

  4. wrk 安装使用

    ==================== 安装 ====================https://github.com/wg/wrk/wiki sudo yum -y groupinstall ...

  5. ES6的小知识(后半部分)

    一.iterator和for-of循环 在js里有数组和对象,es6又新出现了set和map这样js就有了四种数据集合,这样可以组合使用他们,比如数组里拥有对象,set等,这样就需要一个统一的 接口机 ...

  6. 如何进入docker 使用root用户的方式

    docker exec -it --user root <container id> /bin/bash

  7. Ruby on Rails Tutorial 第一章笔记

    搭建开发环境 作者介绍了 Cloud9\ Coding.net 这样的云端开发环境 安装 Rails 1. 新建 rails 应用 首先,调用 rails new 命令创建一个新的 Rails 应用, ...

  8. yii2 adminlte后台搭建

    加载第三方扩展, composer require dmstr/yii2-adminlte-asset "2.*" composer require mdmsoft/yii2-ad ...

  9. BFS 路径记录

    有一迷宫 N*M,要求输出可通行的最短路径. 可以先倒着 BFS 一遍迷宫,这样 dis[] 数组储存的就是各点到迷宫终点的最短距离. 然后再从起点开始 BFS 一遍 dis[] ,只要满足 dis[ ...

  10. NFine中权限判断出错的问题

    NFine中权限判断出错的问题 问题描述:登录后点击栏目一,弹出了窗口一,再点击栏目二,弹出了窗口二,然后再点击窗口一,再执行窗口一中的操作时,发现已没有任何权限,调试后发现在HandlerAutho ...