一、OS模块
OS:operation system 用于获取系统的功能,主要用于操作文件或者文件夹
import os
print(os.name)
print(os.environ)
print(os.environ.get('PATH'))
print(os.curdir)
print(os.getcwd())
print(os.listdir(r'/Users/hi-raphael/Desktop/Python2004/day11/code'))
print(os.path.join(r'/Users/hi-raphael/Desktop/Python2004/day11/aaa','bbb.py'))
print(os.path.split(r'/Users/hi-raphael/Desktop/Python2004/day11/aaa/b/bbb.py'))
print(os.path.splitext('ccc.py'))
print(os.path.getsize(r'/Users/hi-raphael/Desktop/Python2004/day11/code/02_OS模块.py'))
print(os.path.abspath('bbb.py'))
print(os.path.abspath(__file__))
dir_path_ = r'/Users/hi-raphael/Desktop/Python2004/day11/code'
file_path = r'/Users/hi-raphael/Desktop/Python2004/day11/code/02_OS模块.py'
print(os.path.exists(dir_path_))
print(os.path.exists(file_path))
print(os.path.isfile(dir_path_))
print(os.path.isfile(file_path))
print(os.path.isdir(dir_path_))
print(os.path.isdir(file_path))
print(os.path.dirname(dir_path_))
print(os.path.basename(file_path))
def get_file(path):
if not os.path.exists(path):
return '文件不存在'
file_list = os.listdir(path)
for file_name in file_list:
file_path = os.path.join(path, file_name)
if os.path.isfile(file_path):
_, file_type = os.path.splitext(file_path)
if file_type == '.py' or file_type == '.txt':
print(file_name)
get_file(r'/Users/hi-raphael/Desktop/Python2004/day11/code')
二、遍历目录
import os
def search_dir(path):
file_list = os.listdir(path)
for file in file_list:
file_path = os.path.join(path, file)
if os.path.isfile(file_path):
print('文件名:', file)
else:
print("目录名:", file)
search_dir(file_path)
search_dir(r'/Users/hi-raphael/Desktop/Python2004/day11/newdir')
三、包和模块
1、包概述:
包:初期理解为文件夹
作用:一种管理Python模块命名空间的形式,采用"点语法" os.path
包和文件夹之间的区别:Python的包中有一个特殊的文件__init__.py文件,前期里面不写任何内容,但是,就是为了告诉编译器,当前这个目录不是普通目录,是一个包。
1.在Python中,一个py文件其实就是一个模块
2.如果要跨模块调用函数,需要在运行的模块中导入需要使用的模块,调用函数的时候需要指明函数的路径。
创建方式:选中工程,创建Python package
意义:在开发过程中,为了解决文件命名冲突的问题,只要保证最上层的包命名不相同,就不会于别人的发生冲突
2、模块概述
为了解决维护问题,一般情况下,在一个完整的项目中,会将特定的功能分组,分别放到不同的文件中,在使用的过程中,可以单独维护,各个不同的文件之间互不影响,每个.py文件就被称为一个模块,通过结合包的使用来组织文件
封装思路: 函数 => 类 => 模块 => 包 => 项目
优点:
a.提高了代码的可维护性
b.提高了代码的复用性【当一个模块被完成之后,可以在多个文件中使用】
c.引用其他的模块【第三方模块】
d.避免函数名和变量的命名冲突
import math
import os, random
import module1
print(module1.name, module1.age)
module1.show('李四', 25)
from module1 import *
print(name, age)
show('王五', 30)
import random as rd
print(rd.random())
from random import randrange as rr
print(rr(1,3))
import package_01.m2
print(package_01.m2.sex)
from package_01 import m2
print(m2.sex)
from package_01.m2 import sex
print(sex)
import module1
if __name__ == '__main__':
import math
print(dir(math))