Python内置模块OS

23次阅读
没有评论

共计 1609 个字符,预计需要花费 5 分钟才能阅读完成。

OS(operating system)是 Python 内置模块,提供与操作系统相关的方法。

import os
print(os.name)  # 操作系统类型
print(os.environ)  # 操作系统中定义的环境变量
print(os.environ.get("PATH"))  # 获取某个环境变量的值 

如果是 posix,说明系统是 Linux、Unix 或 Mac OS X,如果是 nt,说明是 Windows 系统。

文件操作

重命名文件

# abc.txt -> 123.txt
os.rename('abc.txt', '123.txt')

删除文件

# 删除文件或文件夹
os.removedirs(p1) # 删除空文件夹
if os.path.exists(p2):
    os.remove(p2) # 文件不存在会报错 

判断

# 是否是文件
is_file = os.path.isfile('abc.txt')
print(is_file) # True

目录操作

目录列表

dirs = os.listdir(p1) # 获取所有文件和文件夹

# 获取所有文件和文件夹(包含子孙文件)data = os.walk(p1) # 返回生成器(文件路径 文件夹 文件)for filepath, folders, files in data:
    for file in files:
        file_abs_path = os.path.join(filepath, file)
        ext = file_abs_path.rsplit(".", 1)[-1]
        if ext == "txt":
            print(file_abs_path)

创建目录

# 递归创建文件夹
if not os.path.exists(p1):
    os.makedirs(p1) #如果文件夹只有一级,则用 mkdir() 就行 

删除目录

os.rmdir(目录名)

判断

# 是否是文件夹
is_dir = os.path.isdir(p1)
print(is_dir) # True

获取当前目录

os.getcwd()

修改工作目录

os.chdir(目标目录)

路径

import os

# 获取当前脚本绝对路径
abs_path = os.path.abspath(__file__)
# 或者获取当前目录绝对路径
print(os.path.abspath("."))

# 获取当前文件的上级目录
base_path = os.path.dirname(__file__)
print(base_path) # 假设为:D:Python

# 路径拼接
p1 = os.path.join(base_path, 'img')
print(p1) # 结果为:D:Pythonimg

p2 = os.path.join(base_path, 'img', 'logo.png')
print(p2) # 结果为:D:Pythonimglogo.png

# 判断路径是否存在
exists = os.path.exists(p1)
print(exists) # 结果为:False

# 把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名
print(os.path.split(abs_path))

# 得到文件扩展名
print(os.path.splitext(abs_path))

大小和时间

# 文件大小 KB
os.path.getsize('文本文档.txt') / 1024

# 文件创建时间(修改时间为 getmtime)create_time=os.path.getctime('文本文档.txt')
# 时间戳转格式化
real_time= time.localtime(create_time)
dt=time.strftime("%Y-%m-%d %H:%M", real_time)

target_time='2022-06-06 10:10'
# 转为时间数组
time_array=time.strptime(target_time, "%Y-%m-%d %H:%M")
my_target_time=float(time.mktime(time_array))

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-08-15发表,共计1609字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)