模块(module)
一个文件里,代码太长不易维护。所以要对不同功能的代码分组,保存在不同的文件。
在python中一个.py文件就可以称为一个模块。
- 包含相应功能的函数以及变量。
- 模块可以被其他程序引用,以使用该模块所对应的函数或者变量。
使用模块的优点:
- 提高代码的可维护性
- 提高代码的复用性
- 可以导入很多功能的模块
- 标准库模块
- 第三方模块
- 自定义模块
- 避免变量名重复(作用域)
导入模块的常用方式:
import 模块名称 #A
import 模块名称 as 新名称 #B
from 模块名称 import 函数名称 #C
区别:
- A 和 B
- 会导入整个模块
- 如果我们需要使用某个函数,必须以“模块名称.函数名()”的形式来调用相应的函数。(这种方法有利于代码可读性)[推荐]
- B 重新命名导入的模块(使名称简洁),方便实用。
- C(模块太多时不推荐)
- 只导入了某模块的某一函数
- 可以直接用函数名称去调用函数
- 缺点:可能与其他模块的函数名重复,发生错误
注意:
import 语句对应模块顺序(PEP)(程序的最上方)
- Python标准模块
- 第三方
- 自定义模块
自定义模块
os模块
python标准库中用于访问操作系统功能的模块。
使用os模块提供的接口,能够实现跨平台访问
最常见的操作:
- 目录的操作
- 判断
1.系统操作
- os.sep:用于查看系统路径的分隔符;
- windows --> “\\”
- ubuntu --> "/ "
- os.name:显示我们正在使用的平台
- windows -->“nt”
- Linux/unix -->“posix”
- os.getenv -->读取环境变量(environment)
- os.getcwd() -->获取当前路径2
>>> import os
>>> os.sep
'\\'
>>> os.name
'nt'
>>> os.getenv
<function getenv at 0x0000026A48B04EA0>
>>> os.getcwd()
'C:\\Users\\HP\\AppData\\Local\\Programs\\Python\\Python37'
2.目录操作 —增删改查(direction)
- os.listdir():返回指定目录下的所有文件和目录名
>>> os.chdir("C:\\Users\\HP\\Desktop\\Python实习\\2.1") #更改目录
>>> os.listdir() #返回当前目录
['city.txt', 'data', '新建 Microsoft Excel 工作表.xlsx', '新建文本文档.md']
>>> os.listdir("C:/Users/HP/Desktop/one_week") #返回指定目录
['one_1.py', 'one_2.py', 'one_3.py', 'one_4.py', 'one_5.py', 'sub5.py']
-
目录的创建
- 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.rmdir("data") #必须是空的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [WinError 145] 目录不是空的。: 'data'
>>> os.remove("main_file/sub_file")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
PermissionError: [WinError 5] 拒绝访问。: 'main_file/sub_file'
-
更改路径
- chdir(path):change direction #将当前工作目录更改到指定的工作目录
- os.rename(old_name,new_name)
>>> os.chdir("C:\\Users\\HP\\Desktop\\Python实习\\2.1") #更改目录 >>> os.rename('main_file','main') #目录重命名
判断文件
- os.path.exists(path):判断文件或者目录是否存在,存在,True;否则,False.
- os.path.isfile(path):判断是否为文件,是 True
- os.path.isdir(path):判断是否为目录,是 True
>>> os.path.exists("data")
True
>>> os.path.isfile("data")
False
>>> os.path.isdir("data")
True
>>> os.path.isfile("city.txt")
True
拓展:
-
os.path.dirname(path):返回文件路径 ‘ ’
-
os.path.basename(path): 名称 ‘ ’
-
os.path.getsize(path): 大小
-
os.path.abspath(path): 绝对路径
-
os.path.join(path):
-
os.path.split(path):
>>> os.path.dirname('C:\\Users\\HP\Desktop\\Python实习\\2.1\\新建文本文档')
'C:\\Users\\HP\\Desktop\\Python实习\\2.1'
>>> os.path.basename('C:\\Users\\HP\Desktop\\Python实习\\2.1\\新建文本文档')
'新建文本文档'
>>> os.path.getsize('新建文本文档.md')
6447
>>> os.path.abspath('新建文本文档.md')
'C:\\Users\\HP\\Desktop\\Python实习\\2.1\\新建文本文档.md'
查看文件的时间:
- os.path.getmtime(path):返回文件或目录最后修改时间,结果为秒数–>modify
- os.path.getatime(path): 访问时间,结果为秒数
- os.path.getctime(path): 创建时间,结果为秒数
>>> file='C:/Users/HP/Desktop/Python实习/2.1/week2_1.md'
>>> os.path.getmtime(file)
1563787230.664672
>>> os.path.getatime(file)
1563756164.1531272
>>> os.path.getctime(file)
1563756164.1531272