Day6-常用模块的使用

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)#当前操作系统的换行符
# \n  \r\n
# 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:\syz\ly-code\day6"))#目录/文件是否存在
# 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') #获取文件的大小
# print(os.path.join("root",'hehe','mysql','a.sql'))#拼接成一个路径

# for abs_path,dir,file in os.walk(r'E:\syz\ly-code\day6'): #获取目录下内容  os.listdir()
#     #
#     print(abs_path,dir,file)
    # abs_path 当前循环的绝对路径
    # dir 目录下面所有的文件夹 [ ]
    #  file 目录下面的所有文件  []


使用os模块获取文件夹里的所有文件名,文件名包含绝对路径

def get_filename(dir_name):     # 获取路径下的所有文件的绝对路径
    res = []
    for abs_path, dir, file in os.walk(dir_name):
        for f in file:
            file_name = os.path.join(abs_path, f)
            res.append(file_name)
    return res

os模块还可以用来获取文件的创建时间,修改时间,访问时间,代码如下

a = os.stat(r'C:\Users\虫子\Desktop\new2.txt')
# st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间)
print('访问时间:', time.localtime(a.st_atime))
print('修改时间:', time.ctime(a.st_mtime))
print('创建时间:', time.ctime(a.st_ctime))

 

sys模块的一些应用

import sys
# print(sys.platform)  #判断操作系统
#   #python的环境变量
# sys.path.append(r'E:\syz\ly-code\day5')
# sys.path.insert(0,r'E:\syz\ly-code\day5')
# print(sys.path)

应用sys模块里argv 函数,可以给自己的模块写一些帮助文档

import sys
a = sys.argv # 用来获取命令行里运行python文件时传入的参数
print(a)
if len(a) > 1:
    cmd1 = a[1]
    if cmd1 == '-help':
        print('这是个帮助文档\n这个python文件是用来说明sys.argv的作用')
    elif cmd1 == '-os':
        print('当前的操作系统是:%s' % sys.platform)
    else:
        print('输入命令有误')
else:
    print('运行Python的时候要传入一个参数'
          'e.g\n'
          'python %s install' % a[0])

hashlib模块,将字符串转换成固定长度的哈希码

import hashlib

s = '123456'
md5 = hashlib.md5()
md5.update(s.encode('utf-8'))   # 不能直接加密,要先把字符串转成bytes类型

print(md5.hexdigest())

def my_md5(s):      # 将传入的字符串转成哈希码
    import hashlib
    md5 = hashlib.md5()   # 实例化 md5 对象 
    md5.update(s.encode('utf-8'))    # 字符串必须转成bytes类型
    return md5.hexdigest()

time 模块

import time

print(time.time())  #  获取当前时间戳
today = time.strftime('%d')
print(type(today))

print(time.gmtime())
print(time.localtime(1231546546))   # 获取当前时区的时间

s = time.localtime(1231546546)
s1 = time.strftime('%Y/%m/%d %H:%M:%S', s)
print(s1)

def timestamp2format(timestamp=None, fomat='%Y/%m/%d %H:%M:%S'):    # 默认返回当前格式化好的时间,传入时间戳,返回指定格式的时间
    if timestamp:
        time_tuple = time.localtime(timestamp)
        res = time.strftime(fomat, time_tuple)
    else:
        res = time.strftime(fomat)
    return res

t_tuple = time.strptime('2018-1-4','%Y-%m-%d') # 把格式化好的时间转成时间元组
t_stamp = time.mktime(t_tuple)

print(t_stamp)

def str2timestamp(str=None, format='%Y-%m-%d'): # 指定格式的字符串转换成时间戳
    if str:
        t_tuple = time.strptime(str, format)
        t_stamp = time.mktime(t_tuple)
    else:
        t_stamp = time.time()
    return t_stamp

print(str2timestamp('2018-17-18', '%Y-%H-%M'))

datetime模块的功能和time的功能大体上都相似

import datetime

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

res = datetime.date.today() + datetime.timedelta(days=-5)
print(res)

操作数据库,以使用 pymysql 模块为例,代码如下

import pymysql
# 连上数据库, 账号,密码,ip端口号 数据库
# 建立游标
# 执行sql
# 获取结果
# 关闭游标
# 连接关闭
conn = pymysql.connect(host='127.0.0.1',user='root',port=3306,db='mysql',charset='utf8',password='mysql')
cur = conn.cursor() # 建立游标
cur.execute('select * from menu')   # 执行sql语句
# conn.commit()
res = cur.fetchall()  # 获取所有结果
print(res)
cur.close()
conn.close()

把数据写入 excel 表格

import xlrd,xlwt

book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
sheet.write(0,0,'id')   # 行,列,内容
sheet.write(0,1,'name')
sheet.write(0,2,'sex')
book.save('stu.xls')# 结尾用 xls

 

posted @ 2018-05-04 15:30  飒蓝  阅读(141)  评论(0)    收藏  举报