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()方法返回结果:

 

posted @ 2020-05-19 17:14  布谷鸟的春天  阅读(183)  评论(0编辑  收藏  举报