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学习(四):模块入门的更多相关文章

  1. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  2. Python学习--Selenium模块

    1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台

  3. Python学习--Selenium模块学习(2)

    Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...

  4. Python学习---重点模块的学习【all】

    time     [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...

  5. Python学习笔记——正则表达式入门

    # 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. ...

  6. python学习——常用模块

    在学习常用模块时我们应该知道模块和包是什么,关于模块和包会单独写一篇随笔,下面先来了解有关在python中的几个常用模块. 一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文 ...

  7. Python学习之模块基础

    模块就是程序 编写以下简单代码 print('hello python') 并将py文件保存在c盘的python(假设新建)文件下,通过pycharm的Terminal 或者windom命令窗口调出p ...

  8. Python学习之模块进程函数详解

    今天在看<Beginning Linux Programming>中的进程相关部分,讲到Linux几个进程相关的系统函数: system , exec , fork ,wait . Pyt ...

  9. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  10. Python学习(22):模块

    转自 http://www.cnblogs.com/BeginMan/p/3183656.html 一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元 ...

随机推荐

  1. JavaScript DOM 编程艺术(1)---> JavaScript语法

    一.  JavaScript语法目录 语法 操作 条件语句 循环语句 函数 对象 二.  具体内容 2.1 语法 javaScript代码要通过HTML/XHTML文档才能执行.可以有两种方式完成这一 ...

  2. 《Linux命令行与shell脚本编程大全》第十七章 创建函数

    可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有 ...

  3. 学习爬虫的day02 (用线程去爬虫 提高速度)

    通过lxml的方式去分析数据,将爬到的数据放到file中的html中代码如下# 用线程去爬虫 from urllib.request import Request from urllib.reques ...

  4. Python入门 - 容器类型

    python的容器有四种:列表List,元祖Tuple,字典Dictionary和集合Set. 一.列表List a = [1, 2, 3, 'a', 'b', 'c'] b = 1.5 a.appe ...

  5. KVM克隆 快照

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  6. EntityFrameworkCore v1.1.1 问题汇总

    随着宇宙第一IDE的最新版本发布[2017/3/7],AspNetCore 和EntityFrameworkCore(团队)都发布了最新的代码. 不过在我看来,这些到还不是最重要的.最重要的是dotn ...

  7. 数据结构与算法(C/C++版)【树与二叉树】

    第六章<树与二叉树> 树结构是一种非线性存储结构,存储的是具有"一对多"关系的数据元素的集合. 结点: A.B.C等,结点不仅包含数据元素,而且包含指向子树的分支.例如 ...

  8. linux mysql定时备份

    项目需要定时备份数据库,以下是自己的操作笔记 1.检查磁盘空间 # df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.6 ...

  9. java 的equals 与== ,null与isempty的区别

    1 . == 是为了判断等号两边 变量 所对应 的 内存中的 值  是否  相等, 只是 值 的比较. 2. 假如    String s1 = new String("abc") ...

  10. Javascript 进阶 面向对象编程 继承的一个样例

    Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承.这篇使用一个样例来展示js怎样面向对象编程.以及怎样基于类实现继承. 1. ...