Python教程

python OS模块

本文主要是介绍python OS模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

OS模块

os模块是operation system(操作系统)的简写方式,主要用于在系统操作上进行文件操作使用,如对文件夹进行增删改查等功能

import os
from posixpath import join
import shutil #删除不为空的目录导入的模块

# 创建一个递归函数用于创建多层目录
def mkdir(path):
    if not os.path.isdir(path): #判断是否为路径
        mkdir(os.path.split(path)[0])
    else:
        return
    os.mkdir(path) #创建目录
mkdir(r'C:\Users\User\Desktop\os新建文件夹\img')

# 也可以使用python的makedirs()创建多层目录
os.makedirs(r'C:\Users\User\Desktop\os-makedirs\img1')


# # 删除目录  os.rmdir(path)
os.rmdir(r'C:\Users\User\Desktop\os-makedirs\img1') #要删除的空目录img1,如果删除的文件夹不存在,则会报错(当前目录不存在)
# 删除不为空的目录shutil.rmtreel()
if os.path.exists(r'C:\Users\User\Desktop\os-makedirs\img1'):#判断目录是否存在
    shutil.rmtree(r'C:\Users\User\Desktop\os-makedirs\img1') #存在就删除
    print('目录删除成功')
else:
    print('目录不存在')

# # 获取当前的操作系统,nt代表是window系统
print(os.name)

print(os.getcwd()) #获取当前的工作目录

print(os.path.abspath(r'接单代码\1688.py')) #获取1688.py的绝对路径

print(os.path.exists(r'D:\VScode\Python')) #exists()用于判断路径或者文件是否存在,不区分路径的大小写

# 创建文件夹 os.mkdir(path,mode = 0o777)
os.mkdir(r'D:\VScode\os新建文件夹') #创建目录,但是只能创建一个文件夹
print('ok')

# # 可以通过使用exists先判断目录是否存在,而后再创建文件夹 如下面的代码(如果 D:\VScode\Python 不存在,则进行创建,否则就输出提示信息,该文件夹已存在

if not os.path.exists(r'D:\VScode\Python'):
    os.mkdir(r'D:\VScode\Python')
else:
    print('该文件夹已存在')

''' 遍历目录 os.walk()'''
     #语法: os.walk(top[,topdown][,onerror][,followlinks])
     #必选:top 可选:topdown,onerror,followliks
path = os.walk(r'D:\VScode\Python')
for p in path: #输出遍历的结果
    print(p,'\n')
# 得到更直观的效果
path1 = r'C:\Users\User\Desktop\新建文件夹'
print(path1,'目录下包含的文件和目录')
for root,dirs,files in os.walk(path1,topdown=True): #遍历指定目录,使用从上到下的顺序
    for name in dirs:
        print(os.path.join(root,name)) #输出遍历到的目录使用join连接在一起下面for循环同理
    for name in files:
        print('\t',os.path.join(root,name))


'''高级文件操作'''
# os.remove() 删除文件 或者文件夹
# os.rename('原路径','修改后') 重命名文件或者文件夹,只能修改位置最后一个文件或者文件夹
#  os.stat(path) 获取文件的基本信息,
# os.remove(r'C:\Users\User\Desktop\新建文件夹\111\新建txt文件.txt') #删除指定的文件

# 获取文件信息
def formatTime(longtime): #格式化时间
    import time
    return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(longtime))
def formatByte(number): #格式化文件大小
    for (scale,label) in [(1024*1024*1024,"GB"),(1024*1024,'MB'),(1024,'KB')]:
        if number >= scale:
            return '%.2f %s' %(number*1.0/scale,label)
        elif number == 1:
            return "1字节"
        else: #小于1kb
            byte = '%.2f'%(number or 0) #给出number或者0
    return (byte[:-3] if byte.endswith('.00') else byte) + '字节' #判断byte末尾三位数是不是以.00结尾。如果不是直接输出这个值
fileinfo = os.stat(r'C:\Users\User\Desktop\新建文件夹\index.html') #获取文件的基本信息
print('文件的完整路径' ,os.path.abspath(r'C:\Users\User\Desktop\新建文件夹\index.html')) #获取文件完整路径
print('索引号',fileinfo.st_ino)
print('设备名',fileinfo.st_dev)
print('文件大小',formatByte(fileinfo.st_size))
print('最后一次访问时间',formatTime(fileinfo.st_atime))
print('最后一次修改时间',formatTime(fileinfo.st_mtime))
print('最后一次状态变化时间',formatTime(fileinfo.st_ctime))




这里仅对OS模块的部分对文件的操作做了总结。仅作为学习总结!!!如有错误的地方,希望各位BigFish能做出指正

这篇关于python OS模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!