一、模块、包

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. [摘抄] SFM 和 Visual SLAM

    来自知乎: SFM和vSLAM基本讨论的是同一问题,不过SFM是vision方向的叫法,而vSLAM是robotics方向的叫法. vSLAM所谓的mapping,vision方向叫structure ...

  2. ACFS-9459: ADVM/ACFS is not supported on this OS version

    环境:RHEL 7.3 + Oracle 12.2.0.1 RAC 现象:acfs资源状态不正常,asmca图形也没有acfs相关内容,无法使用acfs. 1.具体现象 2.定位bug 3.解决问题 ...

  3. linux----------今天又遇到一个奇葩的问题,就是linux文件的权限已经是777了但是还是没有写入权限,按照下面的命令就解决了

    查看SELinux状态: 1./usr/sbin/sestatus -v  ##如果SELinux status参数为enabled即为开启状态 SELinux status:             ...

  4. div “下沉”

    最近在做一个计算器,按键整体布局如下: Div2,div3 display属性设置为inline-block.三个div “容器”没添加任何元素时,布局是符合预想的.添加上按键后,布局变成下面这样了: ...

  5. tensorboard窥视

    运行神经网络时,跟踪网络参数,以及输入输出是很重要的,可据此判断模型是否在学习,损失函数的值是否在不断减小.Tensorboard通过可视化方法,用于分析和调试网络模型. 使用tensorboard的 ...

  6. Eclipse启动报错An internal error occurred during: "Initializing Java Tooling"

    Eclipse启动报错An internal error occurred during: "Initializing Java Tooling" 解决方案: 删除工作空间work ...

  7. 第三篇——Struts2的动态方法调用

    Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success: method方式:执行method属性中定义的方法,没有该方法,页面报错: 通 ...

  8. Analysis of FCN

    全卷积网络 FCN 详解   背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully ...

  9. DUBBO分布式入门

    Dubbox框架简介: Dubbox是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo,被国内电商及互联网项目广泛使用,但是后阿里巴巴对该项目停止维护了,当当网后来组建了一个团队一直维护Dubb ...

  10. Hdu1241 Oil Deposits (DFS)

    Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...