Python学习(四):模块入门
1、模块介绍
模块:代码实现的某个功能的集合
模块分类:
自定义模块
内置标准模块
开源模块
模块的常用方法:
是否为主文件:__name__ == '__main__'
如果是直接执行的某程序,那么他就是主文件,__name__ 也就等于 '__main__',如果调用某文件,那么被调用的文件__name__就等于包名.文件名
其中包名是该文件的上级目录名
假设有两个Pydev module,一个名字是file 一个是main
其中file下有个demo.py,main下有一个index.py
那么index.py调用demo.py里面的函数时代码如下:from file import demo
然后引用:demo.函数名()
查看当前文件路径:__file__
查看当前文件doc:__doc__
doc可以用'''doc内容'''来指定
2、自定义模块
2.1 利用PyCharm自定义模块
单击工程下的New -- Python Package

输入模块名称

在此模块下可再次创建

自定义模块结构如下

新建程序入口,即主程序

主程序调用模块,模块下还有模块的可以用"from 模块名.模块名 import 方法名"调用,如果直接import顶层模块名,调用内部模块的方法需要加上顶层模块的名字。模块下没有模块名的可以直接用"from 模块名 import 方法名"调用
#!/usr/bin/env python #coding=utf-8 #导入模块 from TestModule1.TestModule1_1 import TestModule1_1 from TestModule2 import TestModule2 #调用模块 TestModule1_1.TestFunc() TestModule2.TestFunc2()
3、序列化
#导入序列化模块
import pickle
#定义一个列表
li = ['a','b',11,22]
#将此列表序列化并赋值给dumpsed
dumpsed = pickle.dumps(li)
print(dumpsed,type(dumpsed))
#反序列化,将序列化的字符串转换为原来的
loadsed = pickle.loads(dumpsed)
print(loadsed,type(loadsed))
#将序列化的结果赋值给文件
pickle.dump(li,open('F:/workspace/Study/temp.pk','wb'))
#将序列化的文件内容反序列化。
result = pickle.load(open('F:/workspace/Study/temp.pk','rb'))
print(result)
json的语法和序列化一样,文件操作不用加b
pickle只能用于python
json是通用的
4、time模块
time
时间戳 从1970年1月1号到现在的秒
获取时间戳:
>>> import time
>>> time.time()
1470088384.7700861
元组:包含了年、日、星期等
格式化字符串形式存在
>>> time.gmtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=1, tm_hour=21, tm_min=54, tm_sec=48, tm_wday=0, tm_yday=214, tm_isdst=0)
>>> time.localtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=2, tm_hour=6, tm_min=5, tm_sec=52, tm_wday=1, tm_yday=215, tm_isdst=0)
以字符串形式打印
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2016-08-02 06:07:47'
#%Y-%m-%d %H:%M:%S格式和自定义
#时间加减
import datetime
#print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
#print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19
#print(datetime.datetime.now() )
#print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
#print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
#print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
#print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
4、其它功能使用
import os,sys #此文件所在的路径 BasePath = os.path.dirname(os.path.abspath(__file__)) #此文件所在的上级文件夹 BasePathB = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #将此文件添加到环境变量 sys.path.append(BasePathB)
Python学习(四):模块入门的更多相关文章
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Python学习--Selenium模块
1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台
- Python学习--Selenium模块学习(2)
Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- Python学习笔记——正则表达式入门
# 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. ...
- python学习——常用模块
在学习常用模块时我们应该知道模块和包是什么,关于模块和包会单独写一篇随笔,下面先来了解有关在python中的几个常用模块. 一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文 ...
- Python学习之模块基础
模块就是程序 编写以下简单代码 print('hello python') 并将py文件保存在c盘的python(假设新建)文件下,通过pycharm的Terminal 或者windom命令窗口调出p ...
- Python学习之模块进程函数详解
今天在看<Beginning Linux Programming>中的进程相关部分,讲到Linux几个进程相关的系统函数: system , exec , fork ,wait . Pyt ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- Python学习(22):模块
转自 http://www.cnblogs.com/BeginMan/p/3183656.html 一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元 ...
随机推荐
- 安装memcached
简介 memcached是免费和开放源代码的高性能分布式内存对象缓存系统,旨在通过减轻数据库负载来加速动态Web应用程序.其有以下特点: 基于简单的文本行协议 全部数据按照k/v形式存放在内存中,无持 ...
- scrapy初试水 day01
1.安装pip install Scrapy#一定要以管理员身份运行dos窗口conda install scrapy2.创建项目scrapy startproject hello3.在hello/s ...
- dedecms注入漏洞
版本:Powered by DedeCMSV57_GBK © 2004-2011 DesDev Inc. 漏洞利用EXP:plus/recommend.php?action=&aid=1&am ...
- qt学习教程1.qt开发环境搭建
qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...
- openstack高可用haproxy配置
#openstack高可用haproxy配置openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #openstack高可 ...
- JAVA高并发程序设计笔记
第二章 Java并行程序基础 1.join()的本质是让调用线程wait()在当前线程的对象上 2.Thread.yiedl()会使当前线程让出CPU 3.volatile保证可见性,无法保证原子性( ...
- dijkstra最小花费
//Gang #include<iostream> #include<cstring> #include<algorithm> #include<cstdio ...
- 应用教程之帕克西AR虚拟试妆3D动态美妆
帕克西技术团队通过对美妆行业深度调研,凭借自主研发的人脸识别与面部追踪等技术,打造的超现实AR虚拟试妆应用已成功上线,内置万千妆容,包含口红.眉毛.睫毛等,一点即可试妆,就像照镜子一样简单. 那么,帕 ...
- hdu 1068 Girls and Boys 最大独立点集 二分匹配
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 思路: 求一集合满足,两两之间没有恋爱关系 思路: 最大独立点集=顶点数-最大匹配数 这里给出的 ...
- 如何生成CA证书
一般情况下,如果能找到可用的证书,就可以直接使用,只不过会因证书的某些信息不正确或与部署证书的主机不匹配而导致浏览器提示证书无效,但这并不影响使用.需要手工生成证书的情况有:找不到可用的证书需要配置双 ...