Python中的os模块

文章目录

    • 1. 操作系统类型获取 os.name
    • 2. 操作系统的详细信息 os.uname
    • 3. 系统的环境变量 os.environ
    • 4. 判断路径是否是绝对路径
    • 5. 生成绝对路径
    • 6. 获取目录名和文件名
    • 7. 创建目录
    • 8. 文件的创建与删除
    • 9. 文件的重命名
    • 10. 判断文件或目录是否存在
    • 11. 分离后缀名和文件名
    • 12. 分离目录与文件名
    • 13.获取文件时间戳
  • os模块练习

import os os 模块的导入

1. 操作系统类型获取 os.name

取值 系统
nt windows系统
posix linux系统
import os
print(os.name )
print('windows' if os.name=='nt' else 'linux')

Python中的os模块_第1张图片

2. 操作系统的详细信息 os.uname

info=os.uanme() 包含操作系统类型以及主机名称
(1)操作系统类型

info.sysname()

(2)主机名称

info.nodename()

3. 系统的环境变量 os.environ

>>> import os
>>> os.environ
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\admin\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-G43NB6A', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\admin', 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_131\\', 'LOCALAPPDATA': 'C:\\Users\\admin\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-G43NB6A', 'NUMBER_OF_PROCESSORS': '8', 'ONEDRIVE': 'C:\\Users\\admin\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\admin\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Java\\jdk1.8.0_131\\bin;C:\\Program Files\\Java\\jre1.8.0_131\\bin;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;;C:\\pycharm\\PyCharm 2019.2.1\\bin;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 11, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '8e0b', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM': 'C:\\pycharm\\PyCharm 2019.2.1\\bin;', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\admin\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\admin\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-G43NB6A', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-G43NB6A', 'USERNAME': 'admin', 'USERPROFILE': 'C:\\Users\\admin', 'WINDIR': 'C:\\Windows'})

返回一个字典,通过key的值获取环境变量的value值

>>> os.environ.get('PATH')
'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Java\\jdk1.8.0_131\\bin;C:\\Program Files\\Java\\jre1.8.0_131\\bin;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;;C:\\pycharm\\PyCharm 2019.2.1\\bin;'

4. 判断路径是否是绝对路径

os.path.isabs('/user') 判断’/user’是否是绝对路径 返回bool值

>>> os.path.isabs('/user')
True
>>> os.path.isabs('hello')
False

5. 生成绝对路径

(1)生成当前路径下的文件路径

>>> os.path.abspath('hello.png')
'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\hello.png'
>>> os.path.abspath()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: abspath() missing 1 required positional argument: 'path'
>>> os.path.abspath('.')
'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37'

(2)生成指定路径下的绝对路径

>>> os.path.abspath('.')
'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37'
>>> os.path.join(os.path.abspath('.'),'text')
'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\text'
>>> os.path.join(os.path.abspath('/user'),'hello')
'C:\\user\\hello'

6. 获取目录名和文件名

filename=os.path.abspath('.')

(1)获取目录名

>>> filename=os.path.abspath('.')
>>> os.path.basename(filename)
'Python37'

(2)获取文件名

>>> os.path.dirname(filename)
'C:\\Users\\admin\\AppData\\Local\\Programs\\Python'

7. 创建目录

(1)创建单个目录

os.mkdir('img')

Python中的os模块_第2张图片
(2)递归创建多级目录

os.makedirs('/dir1/dir2/dir3')

Python中的os模块_第3张图片
(3)删除目录
注意:不能递归删除目录

os.rmdir('img')

Python中的os模块_第4张图片

8. 文件的创建与删除

(1)文件的创建

os.mknod('ok.txt')

(2)文件的删除

os.remove('ok.txt')

9. 文件的重命名

对当前目录下的文件,否则会报错

os.rename('oldname','newname')

Python中的os模块_第5张图片

10. 判断文件或目录是否存在

os.path.exists('data.txt')

Python中的os模块_第6张图片

11. 分离后缀名和文件名

>>> os.path.splitext('data.txt')
('data', '.txt')

12. 分离目录与文件名

>>> os.path.split('/user/data.txt')
('/user', 'data.txt')

Python中的os模块_第7张图片

13.获取文件时间戳

os.path.getctime('/etc/passwd')

os模块练习

需求:

  1. 在当前目录新建目录img, 里面包含多个文件,
    文件名各不相同(X4G5.png)
  2. 将当前img目录所有以.png结尾的后缀名改为.jpg
import random
import string
import os
#定义函数:生成需求文件名
def create_filename(len=4):
    li=[]
    for i in range(100):
        li.append(''.join(random.sample(string.hexdigits,len )))
    return li
# 建立目录,生成指定文件名的文件
def create_mkdir(dirname):
    os.mkdir(dirname)
    lis=create_filename
    for i in lis:
        os.mknod('/dirname'+i+'.png')
create_mkdir('imm')
def  re_rename(dirname,old_name,new_name):
    if os.path.exists(dirname):
        # 找出以.png结尾的文件
        pngfile=[filename for filename in os.listdir(dirname) if filename.endswith(old_name )]
        # 将文件名和后缀名分离只保留文件名
        basefile=[os.path.splittext(i)[0] for i in pngfile  ]
        for file in basefile:
            oldfilename=os.path.join(dirname,file+old_name)
            newfilename=os.path.join(dirname,file+new_name)
            os.rename(oldfilename,newfilename)
            print("%s重命名%s成功"%(oldfilename,newfilename))
    else:
        print("该目录不存在!")

re_rename('imm','.png','.jpg')

你可能感兴趣的:(python)