L1.4 os模块基础应用

os包:IOS macOS,operate system 操作系统。主要负责新建文件、改文件名、路径、操作电脑系统相关的功能。
是一个内置包。os包实质调用的是windows上的编程接口。

import os 
from os import path

* 1> os.path.existe		判断是否存在文件
print(os.path.exists('xx.py'))        True
print(os.path.exists('xx.txt'))		False
* 2>  rename   重命名
os.rename('aaa.txt', 'bbb.txt')
* 3> 删除文件
os.remove('bbb.txt')
* 4> 创建文件夹  make directory
os.mkdir('aaa')
* 5> 列出当前文件夹下的文件,相当于cmd中dir命令、Linux Is
os.listdir()
* 6> 切换当前文件夹 change,相当于cmd中的cd命令
os.chdir('aaa')
#在cmd中尝试dir、cd命令
* 7> 获取当前工作目录路径  get work directory
print(os.getcwd())
** 7> 获取当前文件所在文件夹。与os.getcwd()不一样的地方,getcwd会受os.chdir()。os.path.dirname只返回当前文件的所在目录,路径分隔用的正斜杠。__file__表示文件自身。
print(os.path.dirname(__file__))

* 8> (常用)拼接路径,获取脚本的绝对路径
os.path.join('D://aaa', 'bbb')       # D://aaa/bbb
print(os.path.join(os.getcwd(), '3os.py'))
print(os.path.join(os.path.dirname(__file__), '3os.py'))
* 9> 获取返回绝对路径      absolute
print(os.path.abspath('./1包引用.py'))
os.path.abspath(os.path.join(os.getcwd(), '3os.py'))
* 10> 判断是否路径      isdir
print(os.path.isdir('aaa'))

1. makedirs() 函数可以用于创建多层目录
os.makedirs(r'.a\b\c')
2. removedirs()  用于删除多层目录
os.removedirs(r'a\b\c')

os模块
getcwd()返回当前文件所在文件夹的绝对路
os.path.abspath():返回自身所在路径的绝对路径
os.path.basename:取路径的最后一部分
os.path.dirname():返回当前文件/文件夹所在的父级文件夹
os.path.isfile():判断是否为文件
os.path.isdir():判断是否为文件夹
os.path.join():拼接路径 mkdir()创建文件夹 chdir()切换文件夹
os.path.exists():判断路径下的文件/文件夹是否存在
os.path.pardir:返回当前文件或者文件夹所在的父级目录


getatime(), getctime(), getmtime()分别用于获得文件的最近访问时间、创建时间和修改时间。不过返回的值是浮点型秒数,可用time模块的gmtime()或localtime()函数换算。

import time, os

temp = time.localtime(os.path.getatime("D:\python\个人练习\新建文本文档.txt"))
print('文档 被访问的时间是:', time.strftime("%d-%b-%Y %H:%M:%S", temp))
temp = time.localtime(os.path.getctime("D:\python\个人练习\新建文本文档.txt"))
print('文档  被创建的时间是:', time.strftime("%d-%b-%Y %H:%M:%S", temp))
temp = time.localtime(os.path.getmtime("D:\python\个人练习\新建文本文档.txt"))
print('文档  被修改的时间是:', time.strftime("%d-%b-%Y %H:%M:%S", temp))

那么该程序返回的结果为:
文档  被访问的时间是: 26-Dec-2018 21:12:50
文档  被创建的时间是: 26-Dec-2018 21:12:50
文档  被修改的时间是: 17-Dec-2018 09:41:43

绝对路径和相对路径(针对资源管理器路径)
绝对路径:从盘符或项目根目录写出每一层目录层级到文件。
D:\python\L8 包\03 os.py
优点:准确,缺点:写起来麻烦

相对路径:.当前目录 …表示父目录
./1包引用.py
…/L7本地文件读写/xx.py
L8包/1包引用.py
相对路径的优点写起来比较短,整个文件夹路径变化时里面的文件路径不用修改。
缺点:容易写错、没有绝对路径准确。

表示目录层级斜杠:windows上 | 反斜杠,macOs linux 用的是/ 正斜杠。
python解释器会把字符串中的反斜杠认为是转移字符,导致出错。
解决方案:

  1. 反斜杠变成正斜杠 ‘D:/python/L8 包/03 os.py
  2. 使用转义字符输出反斜杠 ‘D:\\python\\L8 包\\03 os.py
* 练习:使用绝对路径打开L7/chinese_utf-8.txt
import os
with open('D:\python 14 期\L7 本地文件读写\chinese_utf-8.txt', 'r', encoding="utf-8") as f:
    content = f.read()
    print(content)
* 批量重命名
import os

# 1.获取要重命名得到文件夹名字
folder_name = input("请输入要重命名的文件夹:")
# 2 获取指定的文件夹中的所有文件名字
file_names = os.listdir(folder_name)
os.chdir(folder_name)
# 3 重命名
n = 1
for name in file_names:
	print(name)
	os.rename(name, "文件"+str(n) +name)
	n = n + 1 

概述:
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

在Unix,Windows中有效。
参数
top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

  • root 所指的是当前正在遍历的这个文件夹的本身的地址
  • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
  • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
import os
for root, dirs, files in os.walk(".", topdown=False):
   for name in files:
       print(os.path.join(root, name))
   for name in dirs:
       print(os.path.join(root, name))

dirs效果:
.\package\pack1_pycache_
.\package\pack1
.\package\pack2
files效果:
.\package\pack1_pycache_\py1.cpython-36.pyc
.\package\pack1_pycache__init_.cpython-36.pyc
.\package\pack1\py1.py
.\package\pack1\py2.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值