模块

模块(module)

开发过程中,代码会越来越长,若各直接放在一个文件里,代码会越来越长.—>不易维护.

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

在python中,一个.py文件就可以称之为一个模块

即:

  • 包含相应功能的函数以及变量,py则以".py"为后缀名;

  • 模块可以为其他的程序引用,以使用该模块所对应的函数或者变量.

使用的模块的优点:

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

python中导入模块的常用方式:

import 模块名称

import 模块名称 as 新名称

from 模块名称 import函数名

区别:

  • import 模块名称 和 import 模块名称 as 新名称

    • 会导入整个模块
    • 如果我们需要使用某个模块,必须以"模块名称.函数名()"的形式来调用相应的函数.(这种方法可以更有利于代码的可读性(优先推荐的方法))
    • import 模块名称 as 新名称 ,重写命名导入的模块,通常使模块名称简介,方便使用.
  • from 模块名称 import函数名

    • 只导入某一函数,而不是整个模块
    • 可以直接函数名称去调用函数,而无需再函数名称前加模块名称
    • 如果我们的程序语句很多,不建议采用此方法(原因:调用很多模块后,可能造成函数名称重名,引发错误.)

import…

import…as…

from … import

注意:

import语句的对应模块顺序(PEP)

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

自定义模块

os 模块

os 模块是python标准库中用于访问操作系统功能模块.

使用os模块提供的借口,能够实现跨平台访问.

最常见的操作:

  • 目录的操作
  • 判断

1.系统操作

  • os.sep:用于查看系统路径的分割符;
    • Windows–>"\"
    • ubuntu—>"/"
  • os.name:
  • 显示我们正在使用的平台
    • Windows—>‘nt’
    • Linux/Unix—>‘posix’
  • os.getenv() —>读取环境变量(envirnment)
  • os.getcwd()—>获取当前路径

2.目录操作—增删改查(direction)

  • os.listdir():返回指定目录下的所有文件和目录

  • os.listdir() #未指定路径,当前路径下
    ['.idea', 'data', 'day01.py', 'day02_字符串.py', 'day02_流程控制.py', 'day03.py', 'day04.py', 'day5_0722_文件操作.py', 'day5_0722模块.py', '__pycache__']
    
  • 目录的创建

    • os.mkdir(path) :创建目录,单仅创建一级目录,
    • os.makedirs(path):创建目录,创建多级目录
os.mkdir("os_test")

os.makedirs("main_file/sub_file")
  • 目录/文件删除
    • os.rmdir(path):删除目录(一级)
    • os.removedirs(path):删除空目录(多级)
    • os.remove(path):删除文件,必须是文件
os.rmdir("os_test")   

os.remove("main_file/sub_file")

os.remove("main_file/新建文本文档.txt")
  • 更改路径

    • chdir(path):change direction #将当前工作目录更改到指定的工作目录
    • os.rename(old_name,new_name)
    os.getcwd()
    os.chdir('..')  #两个点表示返回上一级目录
    os.listdir('D:\\NEWS Por\\0722作业\\genggai')
    
    os.rename('data.txt','data.md')
    

3. 判断文件

  • os.path.exist(path):判断文件或者目录是否存在,存在,True;否则,False.
print(os.path.exists("day5_0722模块.py"))
#True
  • os.path.isfile(path):判断是否为文件,是:true;否:False.
print(os.path.isfile('data'))
#False
  • os.path.isdir(path):判断是否为目录,true/false
print(os.path.isdir('data'))
#True

拓展:

  • os.path.dirname(path):返回文件路径;
  • os.path.basename(path):返回文件名称;
  • os.path.getsize(name):返回文件大小;
  • os.path.abspath(name):返回文件的绝对路径
  • os.path.join(path,name):连接目录与文件名或者目录
  • os.path.split(path):将path的目录和文件名分开,并返回元祖
>>> os.path.dirname("D:\\NEWS Por\\day01.py")
'D:\\NEWS Por'
>>> os.path.basename("D:\\NEWS Por\\day01.py")
'day01.py'
>>> os.path.getsize("day03.py")
2872
>>> os.path.abspath("day01.py")
'D:\\NEWS Por\\day01.py'
>>> os.path.join("../NEWS Por","day01.py")
'../NEWS Por\\day01.py'
>>> os.path.split("D:\\NEWS Por\\day01.py")
('D:\\NEWS Por', 'day01.py')

  • 查看文件的时间
    • os.path.getmtime(path):返回文件或者目录的最后修改时间,结果为秒数 —>modify
    • os.path.getatime(path):返回文件或者目录的最后访问时间,结果为藐视
    • os.path.getctime(path) :返回文件或者目录的创建时间
import os
import time
print(os.path.getmtime("day01.py"))
timeArray = time.localtime(os.path.getmtime("day01.py"))
otherStyleTime = time.strftime("%Y-%m-%d %X", timeArray)
print(otherStyleTime)

1563323957.836487
2019-07-17 08:39:17

  • 获取文件和目录

    • os.walk(path):通过在目录树中游走输出在目录中的文件名
    >>> import os
    >>> paths = os.walk("..")
    >>> for i in paths:
    ...     print(i)
    ...
    ('..', ['.idea', 'data', '__pycache__'], ['day01.py', 'day02_字符串.py', 'day02_流程控制.py', 'day03.py', 'day04.py', 'day5_0722_文件操作.py', 'day5_0722模块.py'])
    ('..\\.idea', ['inspectionProfiles'], ['misc.xml', 'modules.xml', 'NEWS Por.iml', 'workspace.xml'])
    ('..\\.idea\\inspectionProfiles', [], [])
    ('..\\data', [], ['GreenFlowerPorcelain.txt', 'test.txt', '城市学院.txt', '陈明明.txt', '青花瓷.txt'])
    ('..\\__pycache__', [], ['day5_0722模块.cpython-36.pyc'])
    >>>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值