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共有的最长的路径

posted @ 2021-06-17 22:39  贝壳里的星海  阅读(42)  评论(0编辑  收藏  举报