day18課程內容:
os模塊
import os
print(os.getcwd())#D:\untitled\練習題 獲取當前工作目錄
os.chdir(r'D:\untitled\練習題\16.1切換當前工作路徑\\a') #切換當前工作路徑
print(os.getcwd()) #D:\untitled\練習題\16.1切換當前工作路徑
#os.makedirs('a\\b')#創建多層目錄
# os.removedirs('a\\b')#刪除空的文件夾
# os.remove()#只能刪除文件 ,不能刪除文件夾,可以配合os.removedirs使用
#print(os.listdir(r'D:\untitled\練習題'))#將路徑下的目錄和文件,組成一個列表展示出來
#os.rename(r'a\b',r'a\bb')#修改目錄名或文件名
a=os.stat('.\文件')#獲取詳悉文件信息
print(a.st_size) #文件大小
b=os.sep
print(b) #\ 當前系統的路徑分隔符 跨平台使用
c=os.pathsep
print(c) #; 當前系統的路徑拼接符 跨平台使用
d=os.system('dir')
print(d) #可以執行shell命令
e=os.environ
print(e) # 當前系統的環境變量
f=os.path.abspath('.\文件')
print(f) # 將相對路徑轉成絕對路徑
g=os.path.split(f)
print(g) # 將絕對路徑,分割為 目錄和文件名 組成一個元組
h=os.path.dirname(f)
print(h) #當前路徑的上一層絕對路徑D:\untitled\練習題\16.1切換當前工作路徑\a
h1=os.path.dirname(h)
print(h1) #當前路徑的上一層絕對路徑D:\untitled\練習題\16.1切換當前工作路徑
#os.path.join() 路徑拼接
加密
import os
print(os.getcwd())#D:\untitled\練習題 獲取當前工作目錄
os.chdir(r'D:\untitled\練習題\16.1切換當前工作路徑\\a') #切換當前工作路徑
print(os.getcwd()) #D:\untitled\練習題\16.1切換當前工作路徑
#os.makedirs('a\\b')#創建多層目錄
# os.removedirs('a\\b')#刪除空的文件夾
# os.remove()#只能刪除文件 ,不能刪除文件夾,可以配合os.removedirs使用
#print(os.listdir(r'D:\untitled\練習題'))#將路徑下的目錄和文件,組成一個列表展示出來
#os.rename(r'a\b',r'a\bb')#修改目錄名或文件名
a=os.stat('.\文件')#獲取詳悉文件信息
print(a.st_size) #文件大小
b=os.sep
print(b) #\ 當前系統的路徑分隔符 跨平台使用
c=os.pathsep
print(c) #; 當前系統的路徑拼接符 跨平台使用
d=os.system('dir')
print(d) #可以執行shell命令
e=os.environ
print(e) # 當前系統的環境變量
f=os.path.abspath('.\文件')
print(f) # 將相對路徑轉成絕對路徑
g=os.path.split(f)
print(g) # 將絕對路徑,分割為 目錄和文件名 組成一個元組
h=os.path.dirname(f)
print(h) #當前路徑的上一層絕對路徑D:\untitled\練習題\16.1切換當前工作路徑\a
h1=os.path.dirname(h)
print(h1) #當前路徑的上一層絕對路徑D:\untitled\練習題\16.1切換當前工作路徑
#os.path.join() 路徑拼接
logging模塊
import logging
# #####日志以文件的形式輸出############
# logging.basicConfig(
# level=logging.DEBUG,
# format='%(asctime)s [line:%(lineno)d] %(levelname)s %(message)s %(filename)s' ,
# datefmt='%a,%d %b %Y %H:%M:%S',
# filename='test.log',
# filemode='a')
#
# logging.debug('debug message')
# logging.info('info message')
# logging.warning('warning message')
# logging.error('error message')
# logging.critical('critical message')
#############將日志輸出到控制台也可以保存在文件里
a=logging.getLogger()
b=logging.FileHandler('test.log') #創建一個Handler 用於寫入日志文件
c=logging.StreamHandler() #創建一個Handler 用於輸出到控制台
d=logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s ')
b.setFormatter(d)
c.setFormatter(d)
a.addHandler(b)
a.addHandler(c)
a.debug('debug message')
a.info('info message')
a.warning('warning message')
a.error('error message')
a.critical('critical message')
configparser模塊 配置文件的操作
#-*- coding: utf-8 -*-
#寫配置文件###############
import configparser
a=configparser.ConfigParser() #創建配置對象
a['DEFAULT']={
'默認':5,
1:11111111,
2:2222222
} #寫配置文件 DEFAULT 默認配置項
a['配置1']={
'配置1.0':'peizhiyidianling',
'配置1.1':'配置1.1111111',
'6':'6666666666'
re 模塊 正則表達式
#coding=utf8
import re
# a=re.findall('w\w{2}l','hello world')
# print(a) #['worl']
#####11個元字符:
a=re.findall('w..l','hello world')
print(a) #['worl'] . 通配符 代表除了換行符以外的一個任意字符
b=re.findall('^h...o','hbbbo hello')
print(b) #['hbbbo'] ^ 代表從字符串的開始匹配,只匹配一次。
c=re.findall('h...o$','hbbbo hello')
print(c) #['hello'] $ 代表從字符串的末尾匹配,只匹配一次。
d1=re.findall('ba*','dddbaaaaa')
print(d1) #['baaaaa'] *代表重復匹配,默認區最多匹配次數
d2=re.findall('ba*','abbbbbb')
print(d2)#['b', 'b', 'b', 'b', 'b', 'b'] *最少可以匹配0次
e1=re.findall('ba+','dddbaaaaa')
print(e1) #['baaaaa'] +代表重復匹配,默認區最多匹配次數
e2=re.findall('ba+','abbbbbb')
print(e2) #[] +最少匹配1次
f=re.findall('ba?','dbdbdbaaaaa')
print(f) #['b', 'b', 'ba'] ?代表匹配0次或1次
g1=re.findall('ba{3}d','bad baaad baaaad')
print(g1) #['baaad'] {} 匹配個數
g2=re.findall('ba{1,4}d','baaad baaaad baad bad')
print(g2) #['baaad', 'baaaad', 'baaaaaaaad'] {} 中可以加范圍,包含最大數字和最小數字
h1=re.findall('b[a,c,e]d','bed beed bcd')
print(h1) #['bed', 'bcd'] [*x] 匹配[]中的任意一個字符
h2=re.findall('[a-z]','123abcd')
print(h2) #['a', 'b', 'c', 'd'] 匹配所有范圍之內的字符
h3=re.findall('[w,*,.]','word*wor.com')
print(h3)#['w', '*', 'w', '.'] [] 里的元字符被取消了特殊功能 但是(\ ^ -)例外
h4=re.findall('[^a]','happy')
print(h4) #['h', 'p', 'p', 'y'] [^x] 代表匹配除了x以外的所有字符
i=re.findall('\d','123abc')
print(i)#['1', '2', '3'] \ 將有特殊功能字符取消特殊功能,將沒有特殊功能的字符擁有特殊功能
j=re.findall('(a|b)','acb')
print(j) #['a', 'b']
k=re.split('[a,b]','abdsas125dd45fd5b555fa12')
print(k) #先以a分割,然后再以b分割,組成列表 ['', '', 'ds', 's125dd45fd5', '555f', '12']
l=re.sub('a..d','a..d','dadfagdagaaadddff')
print(l) #替換 dadfagdaga..dddff
obj=re.compile('[\d\w]{2,4}\.com') #將正則表達式封裝成一個對象使用
m=obj.findall('163.comqq.comyahu.com')
print(m) #['163.com', 'qq.com', 'yahu.com']
