Python中的模块

Python016

Python中的模块,第1张

import os

print(os.name)  # 操作系统名称  Windows nt 非Windows posix

print(os.sep)  # 路径分隔符    Windows \    其他 /

import os

# 使用 os.path 方法获取文件的路径

# 001.获取文件的绝对路径 使用abspath方法

print(os.path.abspath("04_模块导入.py"))

#  运行结果:D:\mypycharm\pythonProject\千峰培训\day11module1\04_模块导入.py

# 002判断是否是文件 False

print(os.path.isdir("")) 

# 运行结果: False

# 003.判断文件是否存在如果存在返回True 否则返回False

print(os.path.exists("mydir"))

# True

import os

files = "2020.12.22.test.py"

print(files.rpartition(".")[-1]) 

print(os.path.splitext(files)[-1])

# 运行结果:

# 获取文件的后缀名  py

# 获取文件的后缀名 .py

import os

print(os.getcwd())

# 运行结果:

# D:\mypycharm\pythonProject\培训\day11module1

import os

os.chdir("mydir")

print(os.getcwd())

# D:\mypycharm\pythonProject\培训\day11module1\mydir

import os

os.rename("66.py","../99.py")

import os

# 001.删除文件

os.remove("../99.py")

# 002.删除空文件夹

os.rmdir("../mydir")

os.removedirs("mydir")

import os

os.mkdir("mydir")

import os

# 001.列出指定目录里所有的子目录和文件

print(os.listdir("D:\mypycharm\pythonProject"))

# 002.默认当前目录里的 子目录和文件

print(os.listdir())

# 运行结果:

# ['.idea', '千峰培训', '学校实习']

# ['03_module.py', '04_模块导入.py', '05_os.py', '2020.12.22.tests.py', 'a01_module1.py', 'a02_module2.py', '__pycache__']

import os

print(os.environ)

print(os.environ["PATH"])

import os

import string  # 字符串模块

import random

files = "test.jpg"

#  01.获取文件的后缀

surffix = os.path.splitext(files)[-1]

# print(surffix)  # .jpg

# 02.生成所有大小写字母的列表

res = list(string.ascii_letters)

# print(string.ascii_letters)

# 运行结果;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

#  03.将0-9添加到res中

for i in range(0, 10):

    res.append(str(i))

# 04.随机生成文件名:

mystr = "".join(random.sample(res, 10))  #  sample随机生成10个字符

# print(mystr)

# bJpED6dj2Y

# 05.将文件名和后缀拼接

print(mystr+surffix)

import sys

print(sys.path)

res = sys.stdin

print(res)

import math

# print(math.pi)  # 3.141592653589793

print(math.factorial(5))  # 120

# 幂运算 第一个参数是底数 第二个参数是幂

print(math.pow(2, 3))  # 8.0

# 向上取整和向下取整

print(math.floor(15.999))  # 15

print(math.ceil(15.001))  # 16

# 四舍五入

print(round(123.51, 1))  # 123.5

# 三角函数

print(math.sin(math.pi / 6))  # sin(pi/6) 0.49999999999999994

print(math.cos(math.pi / 3))  # sin(pi/3) 0.5000000000000001

print(math.tan(math.pi / 4))  # sin(pi/6) 0.9999999999999999

# 开方

a = 9

b = 16

print(math.sqrt(a+b))  # 5.0

# 以e为底的指数函数

print(math.exp(a))

#  8103.083927575384

import random

# 01.random()  随机生成[0,1)之间的数  前闭后开

print(random.random())  # 生成[0,1)之间的小数

# 02.randint() 生成范围内的随机整数        全闭

print(random.randint(10, 20))  # 生成[10,20]之间的整数

# 03.randrange() 生成范围内的随机整数      前闭后开

print(random.randrange(10, 20))  # 生成[10,20)之间的整数

# 04.choice  参数是列表  随机从列表中取一个  取一次

print(random.choice([1, 2, 3, 4, 5, 6, 77, 8, 9]))

# 05.sample 的第一个参数 必须是一个可迭代对象

#          第二个参数代表着从可迭代对象从随机选取几个,选取的对象不能重复

print("".join(random.sample(["a", "b", "c", "d"], 3)))

import datetime as dt # 引入datetime 模块并将其命别名为dt

import time

import calendar  # 引入日历模块

# 01.datetime模块

# 001.获取当前时间的具体信息

print(dt.datetime.now()) 

# 运行结果:

# 2020-12-26 15:36:36.408129

# 年    月 日  时 分 秒  毫秒

# 002.创建日期

print(dt.date(2020,1,1)) 

# 年月日  2020-01-01

# 003.创建时间

print(dt.time(16,30,30))

# 时 分 秒:  16:30:30

# 004.timedelta() 括号中的默认参数是天

print(dt.datetime.now()+dt.timedelta(3))  # 2020-12-25 15:50:15.811738

print(dt.datetime.now()+dt.timedelta(hours=3))  # 2020-12-22 18:51:41.723093

print(dt.datetime.now()+dt.timedelta(minutes=10))  # 2020-12-22 16:01:41.723093

# 02.time

# 001.当前时间的时间戳

# 时间戳是指从1970—01-01 0:0:0到现在的秒数 utc时间 也叫格林尼治时间 

print(time.time())

# 002.按照指定格式输出时间

# print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2020-12-22 15:57:49

# 时间格式:

# %Y  Year with century as a decimal number.

# %m  Month as a decimal number [01,12].

# %d  Day of the month as a decimal number [01,31].

# %H  Hour (24-hour clock) as a decimal number [00,23].

# %M  Minute as a decimal number [00,59].

# %S  Second as a decimal number [00,61].

# %z  Time zone offset from UTC.

# %a  Locale's abbreviated weekday name.

# %A  Locale's full weekday name.

# %b  Locale's abbreviated month name.

# %B  Locale's full month name.

# %c  Locale's appropriate date and time representation.

# %I  Hour (12-hour clock) as a decimal number [01,12].

# %p  Locale's equivalent of either AM or PM.

# 003.ctime 和 asctime 时间格式  输出的时间格式一样,

# print(time.asctime())  # Tue Dec 22 15:57:49 2020

# print(time.ctime())  # Tue Dec 22 15:58:35 2020

# 004.sleep()  时间休眠

print("我负责浪")

print(time.sleep(3))

print("你负责漫")

# 005.calender 生成日历

res = calendar.calendar(2021)  # 生成2021年的日历

print(res)

# 006.判断是否为闰年

print(calendar.isleap(2020))  # True

# 007.从1988年 到 2020年有多少个闰年

print(calendar.leapdays(1988, 2020))  # 8

Python中的模块也称为库,在Python中操作Excel的模块有很多。

优缺点如下:

**1、Pandas模块**

Pandas是Python的一一个开源数据分析模块,可用于数据挖掘和数据分析,同时也提供数据清洗功能,可以说它是日前Python数据分析的必备工具之一。Pandas能够处理类似电子表格的数据,用于数据快速加载、操作、对齐、合并、数据预处理等。

Pandas通过对Excel文件的读写实现数据输入、输出,Pandas支持.xls和.xlsx格式文件的读写,支持只加载每个表的单一工作页。

import pandas as pd

df=pd.read_excel(r'E:ban.xlsx') #pandas 导入库获取excel表的数据内容

df`

**2、xlwings模块**

xlwings模块可以实现Python中调用Excel,也可以从Excel调用Python,这个模块支持支持.xls和.xlsx格式文件的读写,支持对这类文件的操作,还支持使用VBA,具有强大的转换功能,并且可以处理大部分数据类型。

**3、Xlrd模块**

xlrd模块可以读取Excel文件,其对Excel文件的读取可以实现比较精细的控制。虽然现在使用Pandas模块读取和保存Excel文件往往更加方便快捷,但在某些场景下,依然需要xlrd这种更底层的模块来实现对Excel文件读取的控制。

xlrd模块支持.xls、.xlsx格式文件的读取,但不支持写信息。

**4、xlwt模块**

前面xlrd模块可以读取Excel文件,但不能写。而xlwt模块可以写、可以修改Excel文件,但不能读,且只支持.xls格式文件的写操作。

**5、xlutils模块**

xlutils也是一个处理Excel文件的模块,但它不能对Excel文件进行读和写的操作,但依赖于xlrd模块和xlwt模块。xlutils模块支持.xls格式文件,不支持.xlsx格式文件。

**6、openpyxl模块**

openpyxl模块可以对.xlsx格式的Excel文件进行读写操作,特点是读取快、写入慢,且不能操作.xls格式文件。

**7、xlsxwriter模块**

xlsxwriter模块支持多种Excel功能,可以写.xlsx格式的Excel文件,而且速度快、占用内存空间小,但不支持读或者修改现有的Excel文件。

**8、win32com模块**

win32com模块支持.xls、.xlsx格式的Excel文件的读、写和修改,读写速度快。但win32com模块存在于pywin32的模块中,自身没有完善的文档,使用起来不太方便。

**9、分析总结**

Pandas模块把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能的表现中规中矩。xlwings和win32com这两个模块都拥有很好的读写性能,强大的转换器可以处理大部分数据类型,同时,可以在程序运行时,在打开的Excel文件中进行实时操作,实现过程的可视化。另外,xlwings模块的数据结构转换器使其可以快速地为Excel文件添加二维数据结构,而不需要在Excel文件中重定位数据的行和列,因此笔者认为,从读写的便捷性来看,xlwings模块比较好用一些。

Python中模块导入的方法有import、from…import和import as三种。import可以导入整个模块,from…import可以只导入模块的指定部分,而import as则可以将模块重命名。

拓展:此外,Python还支持动态加载模块,如importlib.import_module()方法可以动态加载模块,可以根据程序的需要动态加载指定的模块。