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. 20175312 2018-2019-2 《Java程序设计》第5周学习总结

    20175312 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第六章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...

  2. (转) Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance

    Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance 2018-1 ...

  3. 【笔记】Cocos2dx学习笔记

    自建场景类 自建场景类BaseScene继承与Scene类,在init函数中添加了默认的,键盘与鼠标事件的响应,添加了一个用于读取XML文件的字典,添加了一个结束场景的方法. 类的声明代码如下: #i ...

  4. IDEA中更改Tomcat服务器的URL

    先别参考以下的做法,貌似出了点状况,后续修正!!! 直接上图吧 看IDEA的右上角 点击黄色方框内的Edit Configurations,进入以下的编辑面 后面四个框内的都可以修改,当然不要修改和其 ...

  5. VSCode+python插件

    1.打开VSCode 点击箭头所指地方 然后输入python 安装截图所示的插件 2.进行python路径设置 点击文件--首选项--设置 点击... 会弹出一个下拉框 选择打开setting.jso ...

  6. 自我学习成长系列之<<FirstHead设计模式>>

    第一章 设计模式入门 1.好词好句: 好的设计是可以应付改变. 2.驱动改变的因素:(a)客户需求不清晰,后期会一直变 (b)遇到坑爹的产品,自己不会全扔给程序员 (c)在开发过程中,产生一个新概念, ...

  7. 漏洞复现——httpd换行解析漏洞

    漏洞原理: 在解析php文件时,1.php\x0A这种格式的文件将会被认为php文件解析,进而可以绕过一些服务器的安全策略. 漏洞版本: 2.4.0~2.4.29 漏洞复现: 复现该漏洞是利用dock ...

  8. js 获取getElementsTagName()方法返回值的内容

    <div id="news-top" class="section"> <h3>Some title</h3> <di ...

  9. 使用nginx作为webservice接口代理

    通常情况下,企业并不会直接开放系统接口给到外网,并且在企业内部同样有SOA或者ESB这样的接口统一管理的工具. 那么,大多数情况下,如果需要与外部系统,如云系统,或者其他企业的系统做接口时采取的方式如 ...

  10. [luogu P2205] [USACO13JAN]画栅栏Painting the Fence

    [luogu P2205] [USACO13JAN]画栅栏Painting the Fence 题目描述 Farmer John has devised a brilliant method to p ...