python小白成长周记四 模块 内置模块一

时间:2022-04-27 22:39:00

模块(导入包和导入模块是不一样的)

一:定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名叫:test)

包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个_init_.py文件)

二:导入方法

A:Import module_name导入一个

B:Import module1_name,module2_name/form module_hanbinlongimport m1,m2,m3导入多个用,分来

C:Form module_hanbinlong import*导入所有(不建议使用)(因为form是把文件拿到当前来执行,容易被覆盖掉)

D:form module_hanbinlong import logger as logger_hanbinlong(相对导入,从当前路径导入  form.import)

三:import本质(路径搜索和搜索路径)

导入模块的本质就是把python解释一遍

(import test   test=’test.pyall code’)

(form test import m1 m1=’code ’)

Import hanbinlong-àhanbinlong.py→hanbinlong.py的路径àsys.path

导入包的本质就是执行该包下的_init_.py文件

四:导入优化

From module_test import test

 

Inport sys,os

Print(os.path.dirname(os.path.dirname(os.path.abspath)))

#.abspath找抽象路径 .dirname 找目录名

五 模块的分类:

A:标准库

B:开源模块(第三方模块 )

C:自定义模块(5之前写的就是自定义模块)

标注库:

第一:time与datetime

1…Time+

.sleep()(睡眠)

.gmtime()(utc的时间 标准时间 英国当地时间)

.localtime()(当前时间utc+8时区  本地)

.mktime()(元祖的形式转换成时间戳)(与以上三个互为相反)

.strftime()(元祖的转成字符串)(strftime(‘格式’),时间元组的格式)--》‘格式化的字符串’

.strptime()(字符串转元祖)(strptime(‘格式化的字符串’,‘格式’)à元组的形式)

.asctime()(接受的参数是元组 转成字符串格式)(不输入默认为当前时间)

.ctime()(接受的参数是时间戳格式 转成字符串格式)(不输入默认为当前时间)

import time
x=time.localtime()
print(x)
print(x.tm_year)
print(time.mktime(x))
print(time.strftime('%Y-%m-%d %H-%S',x))
print(time.strptime('2018-5-26 15-58','%Y-%m-%d %H-%S' ))
print(time.asctime() )
print(time.ctime() )

2…datatime

.time()(小时分钟秒)

.datatime()(年月日小时分钟秒)(用就用这个)

.datatime.now()(获取当前时间)

.datatime.now()+datetime.timedelta(3)(当前时间+3天)

.datatime.now()+datetime.timedelta(-3)(当前时间-3天)

.datatime.now()+datetime.timedelta(hours=3)(当前时间+3小时)

同理 加减  时间天小时什么的都一样

import datetime
print(datetime.datetime.now())
print(datetime.datetime.now()+datetime.timedelta(3))
print(datetime.datetime.now()+datetime.timedelta(-3))

第二:random(随机)模块

import random#单词意思是随机 print(random.random())#随机一个0-1的小数 print(random.randint(1,3))#随机1-3的整数[1,3] print(random.randrange(1,3))#[1,3)顾头不顾尾 print(random.choice('hanbinlong'))#随机取一个字符串 print(random.sample('hanbinlong',2))#随机取两个 字符 print(random.uniform(1,3))#随机一个1-3之间的小数 i=[1,2,3,4,5,6]
random.shuffle(i)#洗牌 打乱顺序 print(i)
随机一个验证码
import random
checkcode=''#定一个空 for i in range(4):#四位数密码所以循环四次  a=random.randint(0,3)#从0-3随机一个数  if a==i:#如果第i次正好与随机的数相等  tmp=chr(random.randint(65,90))#从A-Z随机一个数(这里是利用了ASCII码)  else:
        tmp=random.randint(0,9)#从0-9随机一个数  checkcode +=str(tmp)#用str转换下数字 print(checkcode )

第三:os模块

__author__ = '问安' import os
print(os.getcwd())#查看当前操作目录 os.chdir('c:\\users')#更改路径 要用\\避免转义 # 相当于(r'c:\users')建议用这个 print(os.getcwd())
os.curdir#返回当前目录 os.pardir #返回上一级目录 os.makedirs(r'c:\a\b\c\d')#递归的创建一个目录 位置是c:\a\b\c\d os.removedirs(r'c:\a\b\c\d') #递归删除此目录 # (到哪了若是空文件夹就删除 不是空文件夹就留着 这就是为c盘没删的原因) #os.mkdir(r'd:\a')#只能一个一个的建立文件夹 #os.mkdir(r'd:\a\b') #os.rmdir(r'd:\a\b')#只能一个一个的删除文件夹 这一次删除b  print(os.listdir('.'))#显示当前所有的目录 print(os.listdir('..'))#显示上一级的全部目录 os.remove()#()中输入路径 删除路径 os.rename('oldname','newname')#新文件目录覆盖旧文件目录 os.stat('path/filename')  #获取文件/目录信息 os.sep # 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" os.linesep # 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n" os.environ # 获取系统环境变量 字典方式 os.pathsep # 输出用于分割文件路径的字符串 os.name # 输出字符串指示当前使用平台。win->'nt'; Linux->'posix' os.system("bash command") #dir(目录) 运行shell命令,直接显示 os.path.abspath(path)  #获取path文件的绝对路径 os.path.split('c:\\a\\b\\c','a.test') # c:\\a\\b\\c将分割成目录和文件名二元组返回 os.path.dirname(r'c:\a\b\c\a.test') #取 r'c:\a\b\c\a.test'的目录。其实就是os.path.split(r'c:\a\b\c\a.test'的第一个元素 os.path.basename(r'c:\a\b\c\a.test') # 返回r'c:\a\b\c\a.test'最后的文件名。如何r'c:\a\b\c\a.test'以/或\结尾,那么就会返回空值。 # 即os.path.split(path)的第二个元素 os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) # 如果path是绝对路径,返回True os.path.isfile(path)# 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path)  #如果path是一个存在的目录,则返回True。否则返回False os.path.join(r'c:',r'\a.txt') # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 # win有问题 Linux 没问题 查一查 os.path.getatime(path)  #返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间