模块

模块:模块其实就是一个Python文件

一、三种模块

1、标准模块、标准包
#python自带的这些模块,直接import就能用的
import string,random,datetime,os,json
2、第三方模块,别人写好的一些模块,你要安装之后才可以用
 1、傻瓜式的:pip install pymysql
     (1)没有pip命令的怎么搞:
  1、pycharm里面点python console
  2、找到python安装目录
  3、然后把安装目录下的scripts目录,加入到环境变量里面即可
  ps:环境变量在PATH里面加
    (2)Unknown or unsupported command 'install' 出来这个问提怎么解决
  1、打开 C:strawberryperlin
  2、把这个目录下的pip 都改成其他的名字,这个对其他的没有影响
  2、手动安装
 (1)、whl结尾的安装包
  pip install redis-2.10.6-py2.py3-none-any.whl
 (2)、.tar.gz结尾的安装包
  1、解压这个压缩包
  2、进入到这个解压之后的文件夹里面
  3、在命令行里面运行 python setup.py install

3、自己写的python文件

二、导入模块

1、python导入模块的时候的顺序:

(1)从当前目录下找需要导入的python文件
(2)从python的环境变量中找 sys.path 

2、导入模块的实质:就是这这个python文件从头到尾执行一遍

#两种方式是一样的
    import test
    nhy.my()
    print( test.name)

    from  test import my,name,
    my()
    print(name)

Random模块:

import  random,string
print(string.printable)#代表数字、字母、特殊字符
print (random.randint(1,10))#随机取整数
print(round(random.uniform(1,99),2))#随机小数
print(random.choice([1,2,3,4,5]))#只能随机取1个元素
print(random.sample(string.printable,5))#随机取N个元素,返回的是list
#洗牌
pickts=['A','B',"C","D"]
random.shuffle(pickts)#只能传list
print(pickts)

#结果:

 OS模块:

1、常用的OS模块方法:

    os.listdir('e:\')  #列出目录下所有的文件和文件夹
    os.remove()         #删除文件
    os.rename(old,new)  #重命名
    print(os.sep)#当前操作系统的路径分隔符 #
    # res = os.system('ipconfig')  #执行操作系统命令的,但是获取不到结果
    #res = os.popen('ipconfig').read()  #可以获取到命令执行的结果
    # print(os.path.abspath(__file__))#获取绝对路径
    #print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
    # print(os.path.exists(r"E:syzly-codeday6"))   #判断文件或者目录是否存在
    print(os.path.isfile("xiaohei.py"))
    #判断是否是一个文件,1、文件要存在2、必须是一个文件
    print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
    size = os.path.getsize('x.py') #获取文件的大小
    os.path.join("root",'hehe','mysql','a.sql')  #拼接路径
    for abs_path,dir,file in os.walk(r'e:
hy'):
        print(abs_path,dir,file)
        # abs_path 当前循环的绝对路径
        # dir 目录下面所有的文件夹 [ ]
        #  file 目录下面的所有文件  []

其他方法:

import os
#对操作系统的一些操作
# print(os.getcwd())#取当前工作目录
# os.chmod("x.py",2)#给文件/目录加权限,对Windows的下面不好使
# 1  执行
# 2 写
# 4 读
# #chmod
# print(os.chdir("../day5"))#更改当前目录
# print(os.getcwd())
#
# print(os.makedirs("nhy/python"))#递归创建文件夹,父目录不存在时创建父目录
# print(os.mkdir("zll/huangrong"))#创建文件夹
#makedirs 创建文件夹的时候,如果父目录不存在会自动帮你创建父目录
# print(os.removedirs("nhy/python"))#递归删除空目录
# print(os.rmdir("test2"))#删除指定的文件夹
#只能删除空目录
# os.remove("test2")#只能删除文件
# os.rmdir('test2') #只能删文件夹
# print(os.listdir('e:\'))#列出一个目录下的所有文件
# os.rename("test","test1")#重命名
# print(os.stat("x.py"))#获取文件信息
print(os.sep)#当前操作系统的路径分隔符 #
# day5+os.sep+x.py
# print(os.linesep)#当前操作系统的换行符
# 
  

# print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
# print(os.environ)#当前系统的环境变量
# print(os.name)#当前系统名称  Windows系统都是nt linux都是posix
# res = os.system('ipconfig')  #执行操作系统命令的,但是获取不到结果
#res = os.popen('ipconfig').read()  #可以获取到命令执行的结果
# __file__ #获取到当前文件的绝对路径
# print(os.path.abspath(__file__))#获取绝对路径
# print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名

# print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
# print(os.path.basename("e:\syz\ly-code\a.txt"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
# print(os.path.exists(r"E:syzly-codeday6"))#目录/文件是否存在
# print(os.path.isabs("../day5"))#判断是否是绝对路径
# print(os.path.isfile("xiaohei.py"))
#判断是否是一个文件,1、文件要存在2、必须是一个文件
# print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
size = os.path.getsize('x.py') #获取文件的大小
#不能超过2m
# print(size)
# print(os.path.join("root",'hehe','mysql','a.sql'))#拼接成一个路径
# for abs_path,dir,file in os.walk(r'E:syzly-codeday6'): #获取目录下内容  os.listdir()
#     #
#     print(abs_path,dir,file)
    # abs_path 当前循环的绝对路径
    # dir 目录下面所有的文件夹 [ ]
    #  file 目录下面的所有文件  []

小练习:

# 把双数日期的日志,里面给随便写点东西。
# 1、获取到log目录下面的所有文件 os.walk()
# 2、根据文件名来判断,是否是双数日期 ,分割字符串,取到日期
# 3、12%2==0
# 4、打开这个文件 open()
import os,datetime
for abs_path,dir,file in os.walk(r'E:自己的文件夹自动化day6logs'):
    for f in file:
        day = f.split('.')[0].split('-')[-1]
        if int(day)%2==0:
            file_name = os.path.join(abs_path,f)#拼接绝对路径
            open(file_name,'a+',encoding='utf-8').write('写东西')#

时间模块:

import time
#时间戳  从unix 元年到现在过了多少秒
#格式化好的时间
print(time.time())#1525268607.2107282
#time.sleep(1)#停止多少秒时间
print(time.strftime('%Y-%m-%d %H:%M:%S'))#2018-05-02 21:43:27
#先转成时间元组
print(time.gmtime())#默认取得是标准时区的时间
## time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=43, tm_sec=27, tm_wday=2, tm_yday=122, tm_isdst=0)
print(time.localtime())#默认取得是当前时区的时间
#time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=43, tm_sec=27, tm_wday=2, tm_yday=122, tm_isdst=0)
s=time.localtime(1514198608)
print(s)#time.struct_time(tm_year=2017, tm_mon=12, tm_mday=25, tm_hour=18, tm_min=43, tm_sec=28, tm_wday=0, tm_yday=359, tm_isdst=0)

模块练习:

def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    if timestamp:
        time_tuple=time.localtime(timestamp)
        res=time.strftime(format,time_tuple)
    else:
        res=time.strftime(format)#默认取当前时间
    return res
print(timestamp_to_fomat())#2018-05-02 22:00:33
#print(timestamp_to_fomat('2018-4-21 16:20:20'))
#2018-4-21
tp=time.strptime('2018-04-21','%Y-%m-%d')
print(tp)#把格式化好的时间转成时间元组time.struct_time(tm_year=2018, tm_mon=4, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=111, tm_isdst=-1)
print(time.mktime(tp))#把元组转成时间戳1524240000.0


def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
    if str:#如果传了时间的话
        tp=time.strptime(str,format)#转成时间元组
        res=time.mktime(tp)#在转成时间戳
    else:
        res=time.time()#默认取当前的时间戳
    return  int(res)
strToTimestamp()
print(strToTimestamp())#1525269681
print(strToTimestamp('2018421162345'))#1524299025

import datetime
print(datetime.datetime.today())#2018-05-02 22:01:21.841973
print(datetime.date.today())#2018-05-02获取今天日期
res=datetime.date.today()+datetime.timedelta(days=-5)#2018-04-27前五日日期
print(res)#2018-04-27前五日日期
res=datetime.date.today()+datetime.timedelta(days=5)#后五天日期2018-05-07
print(res)
res=datetime.date.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)
print(res)#2018-06-07
print(res.strftime('%Y-%m-%d'))#2018-06-07

制作带有时间的日志文件:

import os,datetime
dirs = ['tomcat','nginx','apache','python','app','android','ios']
os.chdir(r'E:自己的文件夹自动化day6logs')
base_path = r'E:自己的文件夹自动化day6logs'
for d in dirs:
    p = os.path.join(base_path,d)
    os.mkdir(p)
    os.chdir(p)
    for i in range(1,10):
        t = datetime.date.today()+datetime.timedelta(-i)
        name = '%s_%s.log'%(d,t)
        open(name,'w')

 sys模块:

#3、操作数据库
import sys
# print(sys.platform)  #判断操作系统
#   #python的环境变量
# sys.path.append(r'E:syzly-codeday5')
# sys.path.insert(0,r'E:syzly-codeday5')
# print(sys.path)
print(sys.argv)  #用来获取命令行里面运行python文件的时候传入的参数
sys.argv:
import sys
import os
command = sys.argv
print(command)
if len(command)>1:
    cmd1 = command[1]
    if cmd1=='--help':
        print('这个是帮助文档'
              '这个python文件是用来说明sys.argv的作用')
    elif cmd1=='os':
        print('当前的操作系统是%s'%sys.platform)
    else:
        print('输入命令有误')
else:
    print('运行python的时候要传入一个参数'
          'e.g '
          'python xx.py install ')
原文地址:https://www.cnblogs.com/hwtfamily/p/8835960.html