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. 剑指offer(1)二维数组的查找

    限制今天起开始也刷剑指offer啦,一步一步来. 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  2. Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学

    题目传送门 传送点 题目大意 给定$n$个标号依次为$1, 2, \cdots, n$的点,其中一些点被染成一些颜色,剩下的点没有染色.你需要添加一些有向边并将剩下的点染色,满足有向边从编号小的一端指 ...

  3. Linux服务器超简单安装Python3环境、Ipython、Jupyter、virtualenv、virtualenvwrapper教程全在这了

    一.网卡配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT='yes' 二.更换Linux语言环境 1.修改配置文件 vim /etc/l ...

  4. 2、haproxy配置参数详解

    代理相关配置参数 内容参考自马哥教育 HAProxy官方文档 https://cbonte.github.io/haproxy-dconv/2.0/configuration.html URI Syn ...

  5. [python]上传文件验证

    上传文件验证 上传文件验证分为:1.文件头验证 2.文件类型验证 3.文件后缀验证 获取文件上传的二进制数据 # 获取上传文件 file = request.files.get('file') if ...

  6. zookeeper: zkServer.sh status没有到主机的路由

    zookeeper: zkServer.sh status没有到主机的路由 没有到主机的路由这种问题很常见,多数是由机器的防火墙没有关闭. Ubuntu查看防火墙状态ufw status 关闭防火墙u ...

  7. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! --主机密钥验证失败

    1.错误出现在更换服务器操作系统后,使用ssh指令连接服务器时报错:ECDSA主机密钥发生改变,导致主机密钥验证失败! 2.解决方式一 使用指令:$ ssh-keygen -R  主机IP 如:$ s ...

  8. winform 分页控件

    http://www.cnblogs.com/liuyunsheng/p/4853387.html http://www.cnblogs.com/wuhuacong/archive/2011/07/0 ...

  9. Matlab:Crank Nicolson方法求解线性抛物方程

    tic; clear clc M=[,,,,,,];%x的步数 K=M; %时间t的步数 :length(M) hx=/M(p); ht=/K(p); r=ht/hx^; %网格比 x=:hx:; t ...

  10. Python3+SQLAlchemy+Sqlite3实现ORM教程

    一.安装 Sqlite3是Python3标准库不需要另外安装,只需要安装SQLAlchemy即可.本文sqlalchemy版本为1.2.12 pip install sqlalchemy 二.ORM操 ...