Python中幾種常用的模塊
1. os模塊:這個(gè)是調(diào)用操作系統(tǒng)的方法沐兰,使用方法為:import os
查看系統(tǒng)的一些屬性:
import os
print(os.name)? # 操作系統(tǒng)名稱? Windows nt 非Windows posix
print(os.sep)? # 路徑分隔符? ? Windows \? ? 其他 /
使用 os.path 方法獲取文件的路徑
import os
# 使用 os.path 方法獲取文件的路徑
# 001.獲取文件的絕對(duì)路徑 使用abspath方法
print(os.path.abspath("04_模塊導(dǎo)入.py"))
#? 運(yùn)行結(jié)果:D:\mypycharm\pythonProject\千峰培訓(xùn)\day11module1\04_模塊導(dǎo)入.py
# 002判斷是否是文件 False
print(os.path.isdir(""))?
# 運(yùn)行結(jié)果: 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])
# 運(yùn)行結(jié)果:
# 獲取文件的后綴名? py
# 獲取文件的后綴名 .py
獲取當(dāng)前文件的目錄
import os
print(os.getcwd())
# 運(yùn)行結(jié)果:
# D:\mypycharm\pythonProject\培訓(xùn)\day11module1
切換路徑
import os
os.chdir("mydir")
print(os.getcwd())
# D:\mypycharm\pythonProject\培訓(xùn)\day11module1\mydir
修改路徑的名字:
import os
os.rename("66.py","../99.py")
刪除文件和空文件夾:
import os
# 001.刪除文件
os.remove("../99.py")
# 002.刪除空文件夾
os.rmdir("../mydir")
os.removedirs("mydir")
創(chuàng)建文件夾
import os
os.mkdir("mydir")
列出文件夾里的文件
import os
# 001.列出指定目錄里所有的子目錄和文件
print(os.listdir("D:\mypycharm\pythonProject"))
# 002.默認(rèn)當(dāng)前目錄里的 子目錄和文件
print(os.listdir())
# 運(yùn)行結(jié)果:
# ['.idea', '千峰培訓(xùn)', '學(xué)校實(shí)習(xí)']
# ['03_module.py', '04_模塊導(dǎo)入.py', '05_os.py', '2020.12.22.tests.py', 'a01_module1.py', 'a02_module2.py', '__pycache__']
獲取環(huán)境變量
import os
print(os.environ)
print(os.environ["PATH"])
os案例:生成一個(gè)隨機(jī)的文件名
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)
# 運(yùn)行結(jié)果;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
#? 03.將0-9添加到res中
for i in range(0, 10):
? ? res.append(str(i))
# 04.隨機(jī)生成文件名:
mystr = "".join(random.sample(res, 10))? #? sample隨機(jī)生成10個(gè)字符
# print(mystr)
# bJpED6dj2Y
# 05.將文件名和后綴拼接
print(mystr+surffix)
2. sys 系統(tǒng)相關(guān)模塊
import sys
print(sys.path)
res = sys.stdin
print(res)
3. math模塊
import math
# print(math.pi)? # 3.141592653589793
print(math.factorial(5))? # 120
# 冪運(yùn)算 第一個(gè)參數(shù)是底數(shù) 第二個(gè)參數(shù)是冪
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
# 三角函數(shù)
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
# 開(kāi)方
a = 9
b = 16
print(math.sqrt(a+b))? # 5.0
# 以e為底的指數(shù)函數(shù)
print(math.exp(a))
#? 8103.083927575384
4. random 隨機(jī)模塊
import random
# 01.random()? 隨機(jī)生成[0,1)之間的數(shù)? 前閉后開(kāi)
print(random.random())? # 生成[0,1)之間的小數(shù)
# 02.randint() 生成范圍內(nèi)的隨機(jī)整數(shù)? ? ? ? 全閉
print(random.randint(10, 20))? # 生成[10,20]之間的整數(shù)
# 03.randrange() 生成范圍內(nèi)的隨機(jī)整數(shù)? ? ? 前閉后開(kāi)
print(random.randrange(10, 20))? # 生成[10,20)之間的整數(shù)
# 04.choice? 參數(shù)是列表? 隨機(jī)從列表中取一個(gè)? 取一次
print(random.choice([1, 2, 3, 4, 5, 6, 77, 8, 9]))
# 05.sample 的第一個(gè)參數(shù) 必須是一個(gè)可迭代對(duì)象
#? ? ? ? ? 第二個(gè)參數(shù)代表著從可迭代對(duì)象從隨機(jī)選取幾個(gè),選取的對(duì)象不能重復(fù)
print("".join(random.sample(["a", "b", "c", "d"], 3)))
5. datetime 和 time 模塊
import datetime as dt # 引入datetime 模塊并將其命別名為dt
import time
import calendar? # 引入日歷模塊
# 01.datetime模塊
# 001.獲取當(dāng)前時(shí)間的具體信息
print(dt.datetime.now())?
# 運(yùn)行結(jié)果:
# 2020-12-26 15:36:36.408129
# 年? ? 月 日? 時(shí) 分 秒? 毫秒
# 002.創(chuàng)建日期
print(dt.date(2020,1,1))?
# 年月日? 2020-01-01
# 003.創(chuàng)建時(shí)間
print(dt.time(16,30,30))
# 時(shí) 分 秒:? 16:30:30
# 004.timedelta() 括號(hào)中的默認(rèn)參數(shù)是天
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.當(dāng)前時(shí)間的時(shí)間戳
# 時(shí)間戳是指從1970—01-01 0:0:0到現(xiàn)在的秒數(shù) utc時(shí)間 也叫格林尼治時(shí)間?
print(time.time())
# 002.按照指定格式輸出時(shí)間
# print(time.strftime("%Y-%m-%d %H:%M:%S"))? # 2020-12-22 15:57:49
# 時(shí)間格式:
# %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 時(shí)間格式? 輸出的時(shí)間格式一樣,
# print(time.asctime())? # Tue Dec 22 15:57:49 2020
# print(time.ctime())? # Tue Dec 22 15:58:35 2020
# 004.sleep()? 時(shí)間休眠
print("我負(fù)責(zé)浪")
print(time.sleep(3))
print("你負(fù)責(zé)漫")
# 005.calender 生成日歷
res = calendar.calendar(2021)? # 生成2021年的日歷
print(res)
# 006.判斷是否為閏年
print(calendar.isleap(2020))? # True
# 007.從1988年 到 2020年有多少個(gè)閏年
print(calendar.leapdays(1988, 2020))? # 8