day5 python模块(os)

模块(module)

  • 为了编写方便维护的代码,可以把不同功能的代码分组,保存在不同的文件里。这样,每个文件包含的代码量就会比较少,更方便维护。

  • 在python中一个.py文件就可以称作一个模块。即:

    • 包含相应功能的函数以及变量,py则以‘.py’为后缀名:
    • 模块可以为其他程序引用,以使用该模块所对应的函数或者变量
  • 模块的优点:

    • 提高代码可维护性
    • 提高代码的复用性
    • 可以导入很多功能的模块
      • 标准库模块
      • 第三方模块
      • 自定义模块
    • 避免变量名重复(作用域)

Python中导入模块的常用方式

import 模块名称
import 模块名称 as 新名称
from 模块名称 import 函数名
  • 前两种

    • 会导入整个模块

    • 如果我们需要使用某个函数,必须以“模块名称.函数名()”的形式来调用函数。(这种方法可以更有利于代码的可读性(优先推荐的方法))

    • import 模块名称 as 新名称,重新命名导入的模块,通常使模块名称简洁,方便使用。

  • from 模块名称 import 函数名

    • 只导入了某一函数,而不是一整个代码块
    • 可以直接函数名称去调用函数,无需在前面加模块名称
    • 如果自己的程序语句很多,不建议采用此种方法(原因:调用很多模块后,可能造成函数名重名,容易失误。)

注意:

import语句对应模块顺序(PEP)(程序的最上方)

  • Python标准模块
  • 第三方
  • 自定义模块

自定义模块

os模块

  • os模块是python标准库中用于访问操作系统功能的模块。
  • 使用os模块提供的接口,能够实现跨平台访问
  • 常见的操作:
    • 目录的操作
    • 判断
1.系统操作
  • os.sep:用于查看系统路径的分隔符:
    • Window →( “\\” )
    • Ubuntu →( “/” )
>>> os.sep
'\\'
  • os.name:显示我们正在使用的平台:
    • Windows→( “nt” )
    • Linux/Unix→( “posix” )
>>> os.name
'nt'
  • os.getenv() →读取环境变量 (environment)
>>> os.getenv("path")
'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;D:\\mysql\\mysql-8.0.16-winx64\\bin;D:\\javaee\\jdk 8.0\\bin;D:\\javaee\\maven\\bin\\;D:\\javaee\\tomcat9\\apache-tomcat-9.0.21\\bin;D:\\python3.7;D:\\javaee\\jython\\jython 2.7\\bin;C:\\Program Files\\MySQL\\MySQL Shell 8.0\\bin\\'
  • os.getcwd() →获取当前路径
>>> os.getcwd()
'D:\\test\\day5'
2.目录操作–增删改查(路径:direction)
  • os.listdir():返回指定目录下的所有文件和和目录名
    • 未指定路径就是当前路径下,指定路径就是目标路径下
>>> os.listdir()
['1', '2', '2.txt', '3']
>>> os.listdir("D:\\test")
['day5']
  • 目录的创建
    • os.mkdir(path) :创建目录,但仅创建一级目录
    • os.makedirs(path) :创建目录,创建多级目录
>>> os.mkdir("test1")
>>> os.makedirs("test2")
>>> os.listdir()
['1', '2', '2.txt', '3', 'test1', 'test2']
  • 目录/文件删除
    • os.rmdir(path) :删除空 目录(一级)
    • os.removedirs(path) :删除多级空目录
    • os.remove(path) :删除文件,必须是文件
>>> import os
>>> os.rmdir('1')
>>> os.removedirs('1')
>>> os.remove('3.txt')
>>> os.listdir()
['2.txt']
  • 更改路径
    • os.chdir(path) :更改路径(参数为“…”时为返回上一级路径)
    • os.rename(old_name,new_name)
>>> import os
>>> os.getcwd()
'D:\\test\\day5'
>>> os.chdir('..')
>>> os.getcwd()
'D:\\test'
>>> os.chdir('D:\\test\\day5')
>>> os.rename('1.txt','2.txt')
>>>
3.判断文件
  • os.path.exists(path) :判断文件或者目录是否存在 返回为bool
>>> os.path.exists('2.txt')
True
  • os.path.isfile(path) :判断是否是文件 返回为bool
>>> os.path.isfile('2.txt')
True
>>> os.path.isfile('2')
False
  • os.path.isdir(path) :判断是否是目录 返回为bool
>>> os.path.isdir('2.txt')
False

拓展:

  • os.path.dirname(path) :返回文件路径
    • 所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径
    • 所在脚本是以相对路径被运行的, 那么将输出空目录
>>> os.path.dirname('2.txt')
''
>>> os.path.dirname('D:\\test\\day5\\2.txt')
'D:\\test\\day5'
  • os.path.getsize(path) : 返回文件大小
>>> os.path.getsize('2.txt')
823
  • os.path.abspath(path) :返回文件的绝对路径
>>> os.path.abspath('2.txt')
'D:\\test\\day5\\2.txt'
  • os.path.basename(path) :返回文件名称
>>> os.path.basename('2.txt')
'2.txt'
  • os.path.join(path,name) : 连接目录与文件
>>> os.path.join('D:\\test\\day5','2.txt')
'D:\\test\\day5\\2.txt'
  • os.path.split(path) : 将path中目录与文件名分开返回元组
>>> os.path.split('D:\\test\\day5\\2.txt')
('D:\\test\\day5', '2.txt')
4.查看文件的时间
  • os.path.getmtime(path) : 返回文件或者目录的最后修改时间,结果为秒数→modify
>>> tm=os.path.getmtime('2.txt')
>>> timeArray=time.localtime(tm)
>>> time.strftime("%Y--%m--%d %H:%M:%S",timeArray)
'2019--07--22 16:53:42'
>>> os.path.getmtime('2.txt')
1563785622.9981205
  • os.path.getctime(path) : 返回文件的创建时间,结果为秒数
>>> os.path.getctime('2.txt')
1563782895.8920276
>>> tm=os.path.getctime('2.txt')
>>> timeArray=time.localtime(tm)
>>> time.strftime("%Y--%m--%d %H:%M:%S",timeArray)
'2019--07--22 16:08:15'
  • os.path.getatime(path) :返回文件最后访问时间,结果为秒数
>>> tm=os.path.getatime('2.txt')
>>> os.path.getatime('2.txt')
1563782895.8920276
>>> timeArray=time.localtime(tm)
>>> time.strftime("%Y--%m--%d %H:%M:%S",timeArray)
'2019--07--22 16:08:15'
  • os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]]): 用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
    • top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files
    • topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)
    • onerror – 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
    • followlinks – 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
import os
paths=os.walk("..")
for i in paths:
    print(i)
    
#('..', ['.idea', 'day1', 'day5'], [])
#('..\\.idea', ['inspectionProfiles'], ['misc.xml', 'modules.xml', 'test1.iml', #'workspace.xml'])
#('..\\.idea\\inspectionProfiles', [], [])
#('..\\day1', [], ['1.py', '2.py', '3.py', '4.py', '5.py', 'test1.py', '林哲铖 作#业.zip'])
#('..\\day5', [], ['GreenFlowerPorcelain.txt', 'modek_test.py', 'test.csv', 'test.py', '__init__.py', '青花瓷.txt'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值