一、模块、包

1.1 什么是模块
  在python中,一个.py文件就构成一个模块,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。

1.2 什么是包(package)
  包(package)本质就是一个文件夹,将功能相似的模块放到同一个文件夹中,构成一个模块包;该文件夹必须包含一个__init__.py文件,提醒Python该文件夹是一个包,
  __init__.py可以是一个空文件,包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果你想导入其他目录下的模块,那么这个目录必须是一个包才可以导入。

1.3 安装包
  1)傻瓜式的
    pip install ****
  2)没有pip命令
     1.pycharm里面点python console
      2.找到python安装目录
      3.然后把安装目录下的scripts目录,加入到环境变量里面即可  ps:环境变量在PATH里面加
  3)Unknown or unsupported command 'install' 出来这个问提怎么解决
    1、打开    C:\strawberry\perl\bin\
    2、把这个目录下的pip 都改成其他的名字,这个对其他的没有影响
  4)手动安装
    1、whl结尾的安装包
      pip install redis-2.10.6-py2.py3-none-any.whl
    2、.tar.gz结尾的安装包
      1、解压这个压缩包
      2、进入到这个解压之后的文件夹里面
      3、在命令行里面运行 python setup.py install

1.4 导入模块,导入模块的本质就是把python文件拿过来从头运行一遍

1.4.1 从当前目录下找需要导入的python文件
1.4.2 从python的环境变量中找

import os

from module import *  #导入该模块中的所有方法,慎用

from module import fun1,fun2,fun3 #导入模块下的多个方法

from day6.login_file.my_db import my_db #导入day6文件夹下login_file文件夹下my_db文件中的my_db函数

二、random模块

import random,string

print(random.randint(1,10))#随机取整数

print(round(random.uniform(1,99),2))#随机取2位小数(random.uniform生成浮点类型的随机小数,round(数值,精度)控制随机数的精度)

print(random.choice([1,2,3,4,5]))#只能随机取1个元素

print(random.sample(string.printable,5))#string.printable代表数字,字母和特殊字符,从序列中随机取5个元素

print(random.randint(1,1000))#随机产生一个1-1000的数字

print(''.zfill(4))#补0  生成4位数,不够在前面补0 ,前面''中必须是字符串

2.1 洗牌、打乱顺序

pickts =['A','J','Q','K',2,3,4,5,6]

random.shuffle(pickts)

print(pickts)

三、time&datetime模块

time和datetime模块主要用于操作时间
时间有三种表达方式,一种是时间戳:从unix元年到现在过了多少秒;一种是时间元祖;一种是格式化时间:例如2018-04-28

print(time.time())#获取当前时间戳

time.sleep(10)#停10秒

today = time.strftime('%Y-%m-%d %H:%M:%S')#获取格式化好的时间

print(time.gmtime())#默认取得是标准时区的时间

print(time.localtime())#取得是当前时区的时间

res = datetime.date.today() + datetime.timedelta(days=-5)#获取5天前的时间
print(res)

3.1 日期三种格式之间的转换

3.1.1 将一串数字转成日期格式
例如a = '19910608' 现要将a转成1991-06-08的时间格式,则先将字符串转成时间元祖,再将时间元祖转成格式化好的时间,方法如下:

timestr = ''

t = time.strptime(timestr, '%Y%m%d')#转成时间元祖

print(t)
#打印结果是:time.struct_time(tm_year=1991, tm_mon=6, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=159, tm_isdst=-1) r = time.strftime('%Y-%m-%d %H:%M:%S',t)#转成格式化好的时间 print(r) #打印结果是:1991-06-08 00:00:00 print(r[0:10]) #打印结果是:1991-06-08

3.1.2 时间戳转换格式化时间

1).先把时间戳转成时间元组,用time.localtime()方法
2).再把时间元组转成格式化时间

s =time.localtime(1524299387.2033713)

print(time.strftime('%Y-%m-%d %H:%M:%S',s))
#打印结果就是:2018-04-21 16:29:47,转换成功!

3).将时间戳转换成格式化时间写成一个函数

 def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
#1.默认返回当前格式化好的时间
#2.传入时间戳的话,把时间戳转成格式化好的时间,返回
if timestamp:
time_tulp = time.localtime(timestamp)
res = time.strftime('%Y-%m-%d %H:%M:%S',time_tulp)
else:
res = time.strftime(format)#默认取当前时间
return res
print(timestamp_to_fomat())
print(timestamp_to_fomat(197323242,'%Y-%m-%d'))

3.1.3 格式化时间转换时间戳

1).先把格式化好的时间转成时间元组
2).再把时间元祖转成时间戳

tp = time.strptime('2018-4-21','%Y-%m-%d')#先把格式化好的时间转成时间元组
print(tp) print(time.mktime(tp))#再把时间元祖转成时间戳
#打印结果就是:1524240000.0,转换成功!

3).将格式化时间转成时间戳写成一个函数

 def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
#2018 -04-21 16:56:43
if str:#如果传了时间的话
tp = time.strptime(str,format)#转成时间元组
res = time.mktime(tp)#再转成时间戳
else:
res = time.time()#默认取当前的时间戳
return int(res)
print(strToTimestamp())
print(strToTimestamp('2018-11-29 18:38:59','%Y-%m-%d %H:%M:%S'))

3.2 datetime

import datetime

print(datetime.datetime.today())#获取当前时间,精确到秒

print(datetime.date.today())#精确到天

res = datetime.date.today() + datetime.timedelta(days=-5)#获取5天前的时间

res1 = datetime.datetime.today() + datetime.timedelta(minutes=5)#获取5分钟后
#weeks,days,minutes,seconds

四、os模块
4.1 操作系统与环境变量

import os #导入os

print(os.name) #操作系统类型,如果是posix 说明系统是linux unix 或 mac os x ;如果是nt 就是windows 系统

print(os.uname()) #获取详细的系统信息,uname()函数在Windows上不提供,也就是说,os模块的某些函数是跟操作系统相关

print(os.environ)  #当前系统的环境变量

print(os.environ.get('PATH'))  #要获取某个环境变量的值,可以调用

os.environ.get('key')

print(os.sep)  # 当前操作系统的路径分隔符,Linux环境都是/  window环境都是:

print(os.linesep)  # 当前操作系统的换行符  \n  \r\n

print(os.pathsep)  # 当前系统的环境变量中每个路径的分隔符,linux是:,windows是;

os.system('ipconfig')  #用来执行操作系统命令,只能执行,获取不到结果

res = os.popen('ipconfig')  #用来执行操作系统命令,并且获取到返回结果.read

print(res)

print(os.popen('ipconfig').read())

os.popen('top -n 1').read()  #popen 无法执行top ping 等动态命令

4.2 操作文件和目录

print(os.getcwd())#取当前工作目录

os.chmod("拼音.py",2)#给文件/目录加权限,对Windows下的不好使

print(os.chdir("C:\\Users\yantiantian\Desktop\python课堂笔记\day6"))#更改当前目录

print(os.getcwd())

print(os.listdir('D:\\'))#列出一个目录下的所有文件,所有文件都放到一个list里

print(os.makedirs("ytt/python"))#创建文件夹时,父目录不存在时会自动帮你创建父目录

print(os.mkdir("test2"))#创建文件夹,父目录不存在时直接报错

print(os.removedirs("ytt/python"))#删除空目录

print(os.rmdir("test2"))#只能删除文件夹

print(os.remove("C:\\Users\yitai\Desktop\python课堂笔记\day6\logs\android\android_2018-04-12.log"))#只能删除文件,不能删文件夹

print(os.stat("拼音.py"))#获取文件信息

os.rename("test", "test1")  # 重命名
#__file__#获取当前文件的绝对路径
print(os.path.abspath(__file__))#获取绝对路径,能自动识别当前系统 print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名的 print(os.path.dirname("d:\\ly-code"))#获取父目录,获取它的上一级目录 print(os.path.basename("d:\\ly-code"))#获取最后一级 print(os.path.exists("d:\\ly-code"))#目录文件是否存在 print(os.path.isabs("d:\\ly-code"))#判断是否绝对路径 print(os.path.isdir("d:\\ly-code"))#判断是否是一个路径,目录是否存在 print(os.path.isfile(r"E:\txz\day2.zip"))#判断是否是一个文件1.是否存在,2,必须是一个文件,r 转译特殊字符,当成普通字符对待(如\t)
#没写路径的话就默认在当前路径下找,写了就在绝对路径下找 print(os.path.getsize('C:\\Users\\yitai\\Desktop\\python课堂笔记\\day6\\logs\\android\\android_2018-04-13.log'))#获取文件的大小,字节
#上传文件不能超过2M,2M转成kb再转成字节来判断 print(os.path.join("root",'hehe','myswl','a.sql'))#拼接成一个路径 name = 'a.sql'
print(os.path.join("e",name))#拼接成一个路径,(自动识别当前系统的路径分隔符,实现跨平台)

4.3 os.walk
os.walk可以将文件夹下的子文件夹里的文件遍历出来
os.listdir()是列出当前目录下的所有文件;os.walk()返回的是一个二维数组,数组的每个元素都包含绝对路径、文件夹、文件三个元素,可以用三个变量来循环

 for abs_path,dir,file in os.walk('C:\\Users\yitai\Desktop\python课堂笔记\python课堂笔记\day6\logs'):
#abs_path 当前循环的绝对路径
#dir 目录下面所有的文件夹 [ ]
#file 目录下面的所有文件 []
print('abs_path:%s,dir:%s,file:%s'%(abs_path,dir,file))

4.4 os小练习如下:

在双数日期的日志文件 随便写点东西
1.获取到logs目录下面的所有文件 用os.walk()方法
2.根据文件名来判断,是否是双数日期 ,分割字符串,取到日期
3.12%2==0
4.打开这个文件 open()

 import os
for abs_path,dir,file in os.walk(r'C:\Users\yitai\Desktop\python课堂笔记\python课堂笔记\day6\logs'):#获取目录下的内容
for f in file:
day = f.split('.')[0].split('-')[-1]#分割字符串,取到日期
print(day)
if int(day)%2==0:
file_name = os.path.join(abs_path,f)#拼接绝对路径
open(file_name,'a+',encoding='utf-8').write('写东西')

五、sys模块

 print(sys.platform)#判断操作系统
print(sys.path)#python的环境变量 sys.path.append('../day5')#加入到环境变量中最后一位
sys.path.insert('../day5')#加入到环境变量中第一位,效率更高 print(sys.argv)#用来获取命令行里面运行python文件的时候传入的参数

六、xpinyin(拼音)模块

import xpinyin

p = xpinyin.Pinyin()#实例化

res = p.get_pinyin('烘干')#默认不传后面的话,两个拼音之间会有- 链接

print(res)

print(p.get_pinyin('烘干',''))#汉字转成拼音

python----常用模块(random,string,time&datetime,os,sys,xpinyin(拼音))的更多相关文章

  1. python常用模块之string

    python常用模块string模块,该模块可以帮我们获取字母.数字.特殊符号. import string #打印所有的小写字母 print(string.ascii_lowercase) #打印所 ...

  2. python常用模块——random模块

    参考博客:http://www.360doc.com/content/14/0430/11/16044571_373443266.shtml 今天突然想起python该怎么生成随机数?查了一下,贴出实 ...

  3. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块

    一. random模块  import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...

  4. Python常用模块之time和datetime

    1.时间的格式化 结构化时间 ##把字符串时间转换成结构化时间 time.strptime("2017-06-21","%Y-%m-%d") ##把结构化时间转 ...

  5. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  6. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  7. (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

  8. oldboy edu python full stack s22 day16 模块 random time datetime os sys hashlib collections

    今日内容笔记和代码: https://github.com/libo-sober/LearnPython/tree/master/day13 昨日内容回顾 自定义模块 模块的两种执行方式 __name ...

  9. Python常用模块sys,os,time,random功能与用法,新手备学。

    这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...

  10. 常用模块(random,os,json,pickle,shelve)

    常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...

随机推荐

  1. Jmeter使用之-断言

    添加响应断言 ,一般下面这样选择断言的设置就可以了 个人习惯是直接从响应数据中直接复制正确的接口返回值到断言的测试模式中,如下          !!!但是这样复制的是有问题的 ,需要在测试模式中去掉 ...

  2. [LeetCode] 系统刷题4_Binary Tree & Divide and Conquer

    参考[LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal 可以对binary tree进行遍历. 此处说明Divi ...

  3. Mysql InnoDB 数据更新/删除导致锁表

    一. 如下对账表数据结构 create table t_cgw_ckjnl ( CNL_CODE ) default ' ' not null comment '通道编码', CNL_PLT_CD ) ...

  4. 25个SSH命令

    OpenSSH是SSH连接工具的免费版本.telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃 ...

  5. to_date

    SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; 会话已更改. SQL> SELECT TO_DATE(' ...

  6. haier周的计算原则

    现使用oracle的sql表示出haier周, 经过对其生成结果的分析,发现海尔周是以周日到周六分别作为一周的始末, 用到的oracle sql中会涉及到calendar week的定义,还涉及到了I ...

  7. 网页头部meta标签

    <meta http-equiv="content-Type" content="text/html;charset=UTF-8">    //设置 ...

  8. mybatis的sql映射文件不能打包进目录解决办法

    方法二: <build> <finalName>qwe</finalName> <plugins> <plugin> <groupId ...

  9. UI自动化(六)js

    HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...

  10. (转) Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance

    Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance 2018-1 ...