Python学习笔记(18)os模块
一、路径书写规范
windows操作系统:文件路径的间隔符号为'\',例如:E:\movies\a.mp4
mac操作系统:文件路径的间隔符号为'/',例如:/movies/a.mp4
注意:在windows下引用路径时,可使用‘r’或者'\\'来防止‘\’将路径转义。
例如:
r'D:\Python demo\py_demo\python_demo1\besttest_py\day4\a.py'
D:\\Python demo\\py_demo\\python_demo1\\besttest_py\day4\a.py'
二、os模块
os模块:与操作系统相关的标准库。如:文件、目录、执行系统命令等
os.path:path属于os下的子模块,涉及与磁盘文件操作,属于最常使用的模块
查看目录和文件相关:
import os print(os.path.join('C:\\','movies','a.mp4'))#拼接路径,应对不同系统路径分隔符不同,由于无法识别为C盘,需要加'\\' print(os.path.exists(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6'))#判断文件是否存在 print(os.path.exists(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\笔记.txt'))#判断目录是否存在 print(os.path.dirname('D:\Python demo\py_demo\python_demo1\besttest_py\day6'))#获取上一级目录 print(os.path.abspath(r'../day4/a.py'))#根据相对路径回到绝对路径 ./:表示当前目录,../:表示上级目录 print(os.path.split(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\os模块.py'))#分隔路径和文件名,返回元组类型 print(os.path.getsize(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\os模块.py'))#返回文件大小,单位字节 print(os.path.isfile(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\os模块.py'))#判断是否是文件 print(os.path.getctime(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\os模块.py'))#获取创建目录或者文件时间戳 print(os.path.getatime(r'D:\Python demo\py_demo\python_demo1\besttest_py\day4'))#获取最后一次进目录或者文件时间戳 print(os.path.getmtime(r'D:\Python demo\py_demo\python_demo1\besttest_py\day6\os模块.py'))#获取修改目录或者文件时间戳
返回结果:
C:\movies\a.mp4 True True D:\Python demo\py_demo\python_demoesttest_py D:\Python demo\py_demo\python_demo1\besttest_py\day4\a.py ('D:\\Python demo\\py_demo\\python_demo1\\besttest_py\\day6', 'os模块.py') 2389 True 1589610731.104407 1588580451.8535604 1589857767.8909283
目录和文件操作:
# os.mkdir('..\day7')#在当前目录下创建新目录(可通过..\返回上级目录),如果父目录不存在时 会传报错 # os.mkdir('day7\score')#在当前目录下创建新目录(可通过..\返回上级目录),如果父目录不存在时 会传报错 # os.makedirs('..\day7\score12\JSK')#父目录不存在时 会创建父目录,此时day7不存在,会自动创建day7目录 # os.rmdir(r'D:\Python demo\py_demo\python_demo1\besttest_py\day7\score11')#方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。 # os.remove(r'D:\Python demo\py_demo\python_demo1\besttest_py\day7\score12\JSK\eee.txt')#只能删除文件,不能删除文件夹(目录),删除后无法找回 # os.rename('../day7','../day8')#修改目录(当前在day6下os模块中,将day6目录修改为day7目录,修改目录需要进入到该目录下) # os.rename('笔记0111.txt','test0111.txt')#修改文件
# print(os.listdir('..'))#返回指定的文件夹包含的文件或文件夹的名字的列表
# os.chdir(r'C:\Users\admin\Desktop')#改变当前工作目录到指定的路径。
# os.chdir('..')#切换到上级目录
# with open('chdir测试.txt','w') as f:
# f.write('sddsss')
# print(os.getcwd())#获取当前目录
# os.system('ipconfig')#执行操作系统命令,获取不到结果
#注意:os.system()执行命令操作,命令是没有前后连贯关系的
#该例子需要先进入一个目录再创建文件,但是system执行cd后,不会停留在cd下的路径再去执行touch命令,执行多条命令 需要使用 && 符号连接
#错误例子:
#commands = ['cd /Users/nhy/Desktop','touch nhy.txt']
# for command in commands:
# os.system(command)
#正确例子:
#commands = ['cd /Users/nhy/Desktop','touch nhy.txt']
#new = '&& '.join(commands)
#os.system(new)
# result = os.popen('ipconfig').read()#popen获取到结果,在read读出来 # print(result) # os.walk()#获取某个目录下的内容#当前目录,当前目录下的文件夹,当前目录下的文件 #它帮你循环这个目录下的所有子目录 # for cur_dir,dirs,files in os.walk(r'D:\Python demo\py_demo\python_demo1'): # print(cur_dir) # print(dirs) # print(files)
os.walk()方法返回结果: