python中常用的导包的方法

              导入包和包名的方法:1、import package.module

              2、from package.module import  *

  1. 例一:
  1. #second.py
  2.  
  3. def register():
  4. print('this is a register page')

  

  1. #first.py页面调用registe()方法时
  2.  
  3. #1、
  4. import zero.second
  5.  
  6. zero.second.register()
  7.  
  8. #2、
  9. from zero.second import *
  10.  
  11. register()

 输出结果:

例二:

  1. #func.py
  2.  
  3. def logout():
  4. print('this is a logout function')
  5.  
  6. class Logout(object):
  7. def profile(self): #实例化
  8. print('this is a profile method')

  

  1. #second.py
  2.  
  3. def register():
  4. print('this is a register page')

常用的导包方式:1、from package.modlue import *
                   2、from package.package.modlue import *

  1. from zero.first import login
  2. from zero.second import register
  3. from zero.one.func import logout,Logout

  4. #导入包后,可直接调用下面的方法,来获取这些方法里面的内容
  5. login()
  6. register()
  7. logout()
  8. obj=Logout()
  9. obj.profile()

 输出结果:

sys库实战

PS:有时候导入包以后,还是会提示报错,提示找不到路径,用一下的方法解决:

  1. import sys
  2. import os
  3.  
  4. '''提示first的模块不存在,找不到错误的解决方案'''
  5. base_dir=os.path.dirname(os.path.dirname(__file__)) #先定义base_dir,输出D:\code\testDev\zero路径
  6.  
  7. sys.path.append(os.path.join(base_dir,'zero'))
  8.  
  9. for item in sys.path:
  10. print(item)
  11.  
  12. from first import login
  13. login()

输出结果:

常用的库:

1、json库的应用

在python中,序列化:把python的数据类型(字典、元组、列表)转为str的数据类型;

         反序列化:把str的数据类型转为python对象的过程。

序列化和反序列化在列表、元组和字典中的应用:

列表:

  1. import json
  2.  
  3. lists=[1,2,3,4]
  4.  
  5. #序列化
  6. list_str=json.dumps(lists) ##先对lists进行序列化list_str
  7. print('内容:',list_str,'序列化后的列表类型:',type(list_str))
  8. #反序列化
  9. str_list=json.loads(list_str) ##再对list_str进行反序列化str_list
  10. print('内容:',str_list,'反序列化后的列表类型:',type(str_list))

  输出结果(输出的内容可能看不出来效果,通过type()查看数据类型就可以看出区别):

元组:

  1. import json

    tuple1=(1,2,3,4)
  2.  
  3. #序列化
  4. tuple_str=json.dumps(tuple1) #格式化的时候
  5. print('内容:',tuple_str,'序列化后的列表类型:',type(tuple_str))
  6. # #反序列化
  7. str_tuple=json.loads(tuple_str)
  8. print('内容:',str_tuple,'序列化后的列表类型:',type(str_tuple))

  输出结果(输出的内容可能看不出来效果,通过type()查看数据类型就可以看出区别):

字典:

  1. import json
  2.  
  3. dict1={'name':'lyl','age':18}
  4.  
  5. # #序列化
  6. dict_str=json.dumps(dict1)
  7. print('内容:',dict_str,'序列化后的列表类型:',type(dict_str))
  8. # #反序列化
  9. str_dict=json.loads(dict_str)
  10. print('内容:',str_dict,'序列化后的列表类型:',type(str_dict))

 输出结果(双引号和单引号并不能说明数据类型的转变,通过type()查看数据类型): 

  1. dump():把目标数据写到文件里面
    load():从文件里面读取数据
  1. import json

    dict1={'name':'lyl','age':18,'address':'xian'}

  2. #把dict1的内容用w模式写到log.md里面,
  3. json.dump(dict1,open('log.md','w'))
  4. #读取log.md里面的内容
  5. print(json.load(open('log.md','r')))

  输出结果:

2、os库实战:

  1.  os是针对:1、命令行处理
          2、路径处理

1)、命令行处理:

  1. import json
  2.  
  3. print('获取当前的路径:',os.getcwd())
  4. #查看tomcat端口是不是被占用,当然首先要启动端口,不启动端口不用端口就不存在占用的问题。
  5. print(os.system('netstat -ano | findstr "8080"')) #netstat -ano | findstr "8080"这个命令可以直接再cmd中打开

  输出结果:

2)、路径处理

(1)获取路径

  1. import os
  2.  
  3. '''获取路径 os.path.dirname()'''
  4. #获取D:\code\testDev\zero路径
  5. print(os.path.dirname(__file__))
  6. #获取D:\code\testDev路径
  7. print(os.path.dirname(os.path.dirname(__file__)))
  8. #获取D:\code路径
  9. print(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))

  输出结果:

(2)路径的拼接(login.json在别的文件夹下面):

  1. import os
  2.  
  3. '''路径拼接 os.path.join()'''
  4. base_dir=os.path.dirname(os.path.dirname(__file__))
  5. print(os.path.join(base_dir,'data','login.json'))

  6. print('判断是否是文件:',os.path.isfile('D:/code/mysql/utils/')) #os.path.isfile()针对文件路径
  7. print('判断是否是目录:',os.path.exists('D:/code/mysql/utils/yamlUtils.py')) #os.path.exists()针对具体的文件

输出的结果:

3、hashlib库实战

  hashlib是设计安全散列和消息摘要,提供多个不同的加密算的接口,如:SHA1、SHA224、SHA256、SHA384、SHA512、MD5等。

  针对---字符串的基本用法:

  1. import hashlib


  1. m=hashlib.md5()
  2. m.update('heiheihei'.encode('utf-8'))
  3. print(m.hexdigest())#返回十六进制数字字符串

输出结果:

 

  针对---字典加密的用法:

  1. from urllib import parse
  2. import hashlib
  3. import time
  4.  
  5. def sign():
  6. dict1={'name':'lyl','age':18,'sex':'girl','address':'xian','time':time.time()} #'time':time.time()不加时间每次的加密那个数字都一样,加了时间就每次加密不一样。
  7. data=sorted(dict1.items(),key=lambda item:item[0])
  8. data1=parse.urlencode(data)
  9. #加密
  10. m=hashlib.md5() #创建hash对象,md5(message-Digest Algorithm 5):消息摘要算法,得出一个128位的密文
  11. m.update(data1.encode('utf-8')) #更新data1对象以字符串参数的形式
  12. print(m.hexdigest()) #返回十六进制数字字符串
  13.  
  14. sign()

 输出结果:

python中常用的导包的方法和常用的库的更多相关文章

  1. Python中异步协程的使用方法介绍

    1. 前言 在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞.比如在网络爬虫中,如果我们使用 requests 库来进行请求的话,如果网站响应速度过慢,程序一直在等待网站响应,最后 ...

  2. 举例详解Python中的split()函数的使用方法

    这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下   函数:sp ...

  3. python中执行shell的两种方法总结

    这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...

  4. Python 中的时间处理包datetime和arrow

    Python 中的时间处理包datetime和arrow 在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年.月.日等 # 方法一: today = datetime.date.today ...

  5. 【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)

    原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添 ...

  6. Python中os和shutil模块实用方法集…

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  7. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  8. Python中的str与unicode处理方法

    Python中的str与unicode处理方法 2015/03/25 · 基础知识 · 3 评论· Python 分享到:42 原文出处: liuaiqi627 的博客    python2.x中处理 ...

  9. Python中常见字符串去除空格的方法总结

    Python中常见字符串去除空格的方法总结 1:strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.s ...

随机推荐

  1. mpvue 生成字节跳动小程序的问题!!

    初始化项目文件 $ vue init mpvue/mpvue-quickstart fuck $ cd fuck $ npm install 这个时候就初始化好了,接下来 $ npm run dev: ...

  2. 记一次 .NET 某新能源汽车锂电池检测程序 UI挂死分析

    更多高质量干货:参见我的 GitHub: dotnetfly 一:背景 1. 讲故事 这世间事说来也奇怪,近两个月有三位朋友找到我,让我帮忙分析下他的程序hangon现象,这三个dump分别涉及: 医 ...

  3. MyBatis学习总结(五)——关联表查询的实现

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  4. 【算法】使用Golang实现加权负载均衡算法

    背景描述 如下图所示,负载均衡做为反向代理,将请求方的请求转发至后端的服务节点,实现服务的请求. 在nginx中可以通过upstream配置server时,设置weight表示对应server的权重. ...

  5. Linux下sed找出IP中第四位

    ip addr|sed -n '9p'|egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -nr 's#^.*inet (.*) b ...

  6. MySQL——获取元数据

    ---------------------------------------------------------------------------------------------------- ...

  7. adb 常用命令大全(4)- 应用管理

    查看应用列表 语法格式 adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER] ...

  8. vue-cli-service build 环境设置

    zhidao zhouzongshuo的那个是使用vue-cli3打包项目,通过配置不同的指令给项目设置不一样的配置. npm run serve时会把process.env.NODE_ENV设置为' ...

  9. jquery实现强制刷新

    $('iframe.active').attr('src', $('iframe.active').attr('src'));

  10. 硕盟SM-T54(TYPE C转HDMI+VGA+USB3.0+PD3.0)

    硕盟SM-T54是一款TYPE C转HDMI+VGA+USB3.0+PD3.0四口扩展坞,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显示器.电视机或其他显示设备. ...