博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python3_进阶系列_012】Python3-模块管理与常见内置模块
阅读量:5161 次
发布时间:2019-06-13

本文共 5134 字,大约阅读时间需要 17 分钟。

一、文件,模块,包

简单理解,我们编写代码的时候写的是单个py文件,这个py文件也可以成为模块。包就是很多模块在同一个目录下。

文件=模块

包=模块*n

1.内置模块
本身就带有的库,就叫做Python的内置的库。(模块==库)
一些常见的内置模块
os 和操作系统相关 os.path
sys 和系统相关 sys.path (python)
sys.path.append(r'') 可以添加路径
re 正则表达式

2.第三方模块
非Python本身自带的库,就是所谓的第三方的库
3.模块的导入
import xxx [as yy]
from ../xx import xx [as yy]
4.自定义模块
py文件,可以做为一个模块来用,直接作为一个模块导入就行
__main__ 的意义:
当文件是直接运行是,文件的__name__是__main__ ,当文件是被导入时,__name__是文件名

5.包管理

基本上就是另外一类模块。把用来处理一类事物的多个文件放在同一文件夹下组成的模块集。
要让python 将其作为包对待,在python2中必须包含__init__.py的文件,但在python3中没有__init__.py文件也可以,
使用包可以避免多个文件重名的情况,不同的包下的文件同名不影响。
导入包和模块是一样的方法,包导入后会在目录中自动生成__pycache__文件夹存放生成的.pyc文件,
要注意的是import后面的才是存在当前作用域中的对象名,from是告诉python从什么地方导入,

使用sys.path添加文件的目录路径。

二、常见内置模块

1.os模块

os.name #如果是windows操作系统返回’nt’,如果是其他系统则返回 ‘posix’

os.environ #返回系统的环境变量,以dict形式显示

os.getcwd() #返回当前工作目录

os.chdir(path) #改变工作目录
os.listdir(path=’.’) #列举指定目录中的文件名(‘.’表示当前目录,’..’代表上一级目录)
os.mkdir(path) #创建单层目录,如该目录已存在抛出异常
os.makedirs(path) #递归创建多层目录,如果该目录已经存在则抛出异常。
os.remove(path) #删除文件
os.rmdir(path) #删除单层目录,如改目录非空则抛出异常
os.removedirs(path)#递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常。
os.rename(old,new) #将文件old 重命名为new,文件和目录都使用这条命令
os.path #模块中关于路径常用的函数使用方法:
os.path.basename(path) #去掉目录路径,单独返回文件名
os.path.dirname(path) #去掉文件名,单独返回目录路径
os.path.join(path1,path2) #将path1,path2各部分组合成一个路径名
os.path.split(path)#分割文件名和路径,返回(f_path,f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在。
os.path.splitext(path)#分离文件名与扩展名,返回(f_name,f_extension)元组
os.path.getsize(file)#返回指定文件的尺寸,单位是字节
os.path.getatime(file)#返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getctime(file)#返回指定文件创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getmtime(file)#返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)返回True或False的函数
os.path.exists(path) #判断指定路径(目录或文件)是否存在
os.path.isabs(path) #判断指定路径是否为绝对路径
os.path.isdir(path) #判断指定路径是否存在且是一个目录
os.path.isfile(path) #判断指定路径是否存在且是一个文件

2.shutil模块

#复制文件

shutil.copyfile(‘oldfile’,’newfile’) #oldfile和newfile都只能是文件
shutil.copy(‘oldfile’,’newfile’) #oldfile只能是文件,newfile可以是文件也可以是目标目录
#复制文件夹
shutil.copytree(‘olddir’,’newdir’) #olddir和newdir都只能是目录,且newdir必须不存在移动文件(目录)
shutil.move(‘oldname’,’newname’)
#删除目录
os.rmdir(‘dir’)#只能删除空目录
shutil.rmtree(‘dir’)#空目录,有内容的目录都可以删

3.sys模块

sys.argv

#用来向python解释器传递参数,名曰“命令行参数”
sys.exit()
#退出当前程序
sys.stdout
#与Python中的函数功能对照,sys.stdin获得输入,等价于python2中的raw_inpurt(),python3中的input(),sys.stdout负责输出
sys.path
#返回python目录下所有.pth路径文件下的内容集系统默认设置。可以通过列表的操作对其进行修改,不过这种更改只对当前的程序起作用。

4.time模块

>>> import time #python中最基本的时间模块

>>> time.time()   #时间戳 (1970年1月1日00:00:00后经过的浮点秒数)
1501415142.9751205
>>> time.localtime() #本地时间 返回时间元组
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=30, tm_hour=19, tm_min=45, tm_sec=56, tm_wday=6, tm_yday=211, tm_isdst=0)
#返回的元组的内容:
#索引值(index) 属性(attribute)     值(value)
#0           tm_year(年)           例如:2016
#1   tm_mon(月) 1~12
#2   tm_mday(日) 1~31
#3   tm_hour(时) 0~23
#4   tm_min(分) 0~59
#5   tm_sec(秒) 0~61
#6   tm_wday(星期几)   0~6(0代表星期一)
#7   tm_yday(一年中的第几天)     1~366
#8   tm_isdst(是否为夏令时) 0,1,-1(-1代表夏令时)
time.asctime([t]) #接收时间元组并返回一个可读的形式
>>> time.asctime(time.localtime())
'Sun Jul 30 19:55:05 2017'

 

import osimport timeimport jsonimport randomimport hashlibimport datetimehash = hashlib.md5()hash.update('ermao'.encode('utf-8'))print(hash.hexdigest()) from configparser import ConfigParser parser = ConfigParser() parser.read("test.ini") print(parser.sections()) for section in parser.sections():     print(parser.options(section)) print(parser.get('seg1', 'key2')) print(datetime.datetime.now()) now = datetime.datetime.now() old = datetime.datetime.strptime("1954-01-20 12:59:38", "%Y-%m-%d %H:%M:%S") result = now - old print(type(result)) print(now - datetime.timedelta(days=-1, hours=4)) print(now.month) print(now.day) print(time.time()) data = time.localtime(time.time()) print(time.strftime("%Y-%m-%d %H:%M:%S", data)) string = "2000-07-29 12:59:38.012345" print(time.strptime(string, "%Y-%m-%d %H:%M:%S.%f")) print(random.random())  ##返回0-1的随机值 print(random.randint(10, 99)) ##返回10-99的整数随机值 print(random.choice(["damao", "ermao", "xiaomao"]))  ##返回自定义的范围的随机值 list = [123, 4566, "abc", {
"key": 123}] print(json.dumps(list)) data = '[123, 4566, "abc", {"key": 123}]' result = json.loads(data) print(result[2]) print(result[-1]['key']) print(os.getcwd()) os.chdir("C:/Users/40556/PycharmProjects/second/lesson04/") print(os.getcwd()) print(os.listdir("C:/Users/40556/PycharmProjects/second/lesson04/")) def get_files(path, include=['.py'], exclude=['.idea', '.xml', '.pyc', '.txt']): tmp = [] files = os.listdir(path) for file in files: new_path = "/".join([path, file]) if os.path.isdir(new_path): tmp.extend(get_files(new_path)) elif os.path.isfile(new_path): for exc in exclude: if new_path.find(exc) != -1: break else: for inc in include: if new_path.find(inc) != -1: tmp.append(new_path) tmp.append(new_path) return list(set(tmp)) path = "C:/Users/40556/PycharmProjects/second/test" get_files(path) print(get_files(path))

 

转载于:https://www.cnblogs.com/forfreewill/articles/9407993.html

你可能感兴趣的文章
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>