python-os
os模块
os模块
系统环境
os.environ
os.environ
属性可以返回环境相关的信息,主要是各类环境变量。返回值是一个映射(类似字典类型)
print(os.environ['HOMEPATH'])
# >>> \Users\tzxw
文件和目录
# 文件和目录
os.getcwd() 当前目录
os.listdir(path) 返回path下文件和文件夹列表
os.chdir(path) 修改工作目录
创建
os.makedirs(path) 递归创建多级目录
os.mkdir(file) 创建单极目录,上级目录必须存在
os.remove(path) 删除文件,若 path是目录抛出异常
os.removedirs(path) 递归删除目录
os.rmdir(path) 删除空目录,必须是空
# 重命名文件
os.rename(path + "test.txt", path + "tests.txt")
os.walk(top, topdown=True)
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
""" generator
输入参数
top 遍历的目录的地址
topdown True则优先遍历 top 文件夹
返回参数
dirpath string代表目录的路径
dirnames list,包含了dirpath下所有子目录的名字
filenames list,包含了dirpath下所有文件的名字
"""
# 遍历目录下的所有文件
for root, dirs, files in os.walk(top, topdown=True):
for name in files:
print(os.path.join(root, name))
# 遍历目录下的所以文件夹
for root, dirs, files in os.walk(top, topdown=True):
for name in dirs:
print(os.path.join(root, name))
文件操作
文件操作:
fp = open("test.txt",mode="w", encoding="utf-8" )
# 直接打开一个文件,如果文件不存在则创建文件
"""
关于open 模式:
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
"""
# 写入文件
os.write(f, bytes("123",encoding="utf-8"))
# 读取文件
os.read(f,12)
os.path
# 文件路径和文件名
# 获取当前文件所在目录
path = os.path.realpath(__file__)
print(path)
os.path.basename(path) 返回路径的最下级目录(文件名字)
os.path.dirname(path) 返回路径的上级目录
os.path.realpath(path) path的真实路径
# 路径合并和拆分
os.path.join(path1,path) 把目录和文件名合成一个路径
os.path.split(path) 把路径分割成元组 (dirname,basename)
os.path.splitdrive(path) windows 下,返回 驱动器和路径组成的元组
os.path.splitext(path) 返回路径名和文件扩展名的元组
# 绝对路径和相对路径
os.path.abspath(path) 返回绝对路径
os.path.relpath(path[, start]) 从start开始计算相对路径
# 是否存在
os.path.exists(path) 如果path存在,返回 True,如果path不存在,返回 False
os.path.lexists(path) 路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) 把path中包含的"~"和"~user"转换成用户目录
os.path.expandvars(path) 根据环境变量的值替换path中包含的"$name"和"${name}"
# 文件目录时间大小等信息
os.path.getatime(path) 返回最近访问时间(浮点型秒数)
os.path.getmtime(path) 返回最近文件修改时间
os.path.getctime(path) 返回文件 path 创建时间
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
# 是否是文件目录
os.path.isabs(path) 是否为绝对路径
os.path.isfile(path) 是否为文件
os.path.isdir(path) 是否为目录
os.path.islink(path) 是否为链接
os.path.ismount(path) 是否为挂载点
# 标准化
os.path.normcase(path) 转换path的大小写和斜杠
os.path.normpath(path) 规范path字符串形式
# 是否相同
os.path.samefile(path1, path2) 判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2) 判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) 判断stat tuple stat1和stat2是否指向同一个文件
os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径