【Python学习笔记Day30】 文件系统
是一个可用代码块的打包,在上一讲中,我们可以定义很多已经写好的函数包等
模块是一个包含所有你定义的而函数和变量的文件,其后缀名是py.模块可以被别的程序引用,以使用该函数模块功能
例如使用random的堆积函数时,如果直接使用
secret = random.randint(1,10)
则会报错,必须在使用前调用random模块
import random
Operating System
有了OS模块,我们不需要关心什么操作系统下使用什么模块,OS模块会帮我们使用正确的模块并调用
我们第一节课就讲过了,Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现。
因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模块,OS模块会帮你选择正确的模块并调用。
在使用os模块前,必须先
import os
path = os.getcwd()
print(path) #打印该程序代码存放的文件路径
os.chdir('D:\\')
print(os.getcwd()) #显示当前的工作目录处于D盘下面
列举指定目录中的文件名(’.‘表示当前目录,’…'表示上一级目录)
print(os.listdir('D:\\')) #会打印所有的D盘下的文件及文件夹,还包括隐藏文件等,作为一个列表
创建单层目录,如该目录已存在抛出异常
递归创建多层目录,如该目录已存在抛出异常,注意:'E:\a\b’和’E:\a\c’并不会冲突
删除文件,删除的文件夹,下级不能包含子文件
删除单层目录,如该目录非空则抛出异常
递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
将文件old重命名为new
os.system('cmd') 打开系统的cmd命令窗口
os.system('calc') 打开计算器
遍历top路径以下所有的子目录,返回一个三元组:(路径, [包含目录], [包含文件])
以下是支持路径操作中常用到的一些定义,支持所有平台
1)os.curdir 指代当前目录(’.’)
2)os.pardir 指代上一级目录(’…’)
3)os.sep 输出操作系统特定的路径分隔符(Win下为’\’,Linux下为’/’)
4)os.linesep 当前平台使用的行终止符(Win下为’\r\n’,Linux下为’\n’)
5)os.name 指代当前使用的操作系统(包括:‘posix’, ‘nt’, ‘mac’, ‘os2’, ‘ce’, ‘java’)
6)
print(os.name) #打印nt
模块中关于路径常用的函数使用方法
去掉目录路径,单独返回文件名
print(os.path.basename(‘E:\abs\adad\das\adc.txt’))
去掉文件名,单独返回目录路径
print(os.path.dirname(‘E:\abs\adad\das\adc.txt’))
将path1, path2各部分组合成一个路径名
print(os.path.join(‘A’,‘B’,‘C’,‘D’))
分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
分离文件名与扩展名,返回(f_name, f_extension)元组
返回指定文件的尺寸,单位是字节
返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
time1 = os.path.getatime('D:\\Project\\python\\1st.py')
print(time1) #得到的是一个浮点数
#使用time模块可以将其转化为标准时间
import time
time2 = time.localtime(time1)
print(time2)