python常用模块
【os模块 】
当前路径下的所有目录
[x for x in os.listdir(".") if os.path.isdir(x)]
【json】
import json dic = {"name":"jinkang","age":23} d = json.dumps(dic) print type(dic) # dict print type(d) # str print dic["name"] #jinkang print json.loads(d)["name"] jinkang
【logging 模块】
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='myapp.log', #指定日志文件名 filemode='w') #指定日志的打开方式, ‘w’或‘a’ 覆盖 追加 logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message')
myapp.log 中的内容
Mon, 28 Aug 2017 11:36:48 hello.py[line:11] DEBUG This is debug message
Mon, 28 Aug 2017 11:36:48 hello.py[line:12] INFO This is info message
Mon, 28 Aug 2017 11:36:48 hello.py[line:13] WARNING This is warning message
将日志同时输出到文件和屏幕
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
time
1 | 时间的格式化<br> time .strftime( '%Y-%m-%d %H:%M:%S' , time .localtime( time . time ())) |
zipfile 模块
import zipfile f = zipfile.ZipFile('pythontest.zip','r') for x in f.namelist(): //获取压缩文件的文件列表 print x #输出文件名称 print f.read(x) #输出文件内容
import zipfile
f = zipfile.ZipFile('pythontest.zip','r')
for x in f.namelist():
with open(x,'w') as file:
file.write(f.read(x))
#解压一个zip文件
requests
import os import requests import json val = { "name": "adminw", "passwd": "123456" } r = requests.get("http://127.0.0.1:3999/test",data=val,timeout=2) # res = json.loads(r.text) # for attr in res: # print attr,res[attr] print r.text
val = {
"name": "adminw",
"passwd": "123456"
}
try:
r = requests.get("http://127.0.0.1:3999/test",data=val,timeout=2)
print t.text
except requests.exceptions.ReadTimeout:
print "errr"
所有的请求错误都来自
requests.exceptions.RequestException
getpass 模块
提供了可移植的密码输入,提供了两个函数 getpass.getpass() getpass.getuser()
import getpass pd = "password" p = getpass.getpass("请输入密码,然后按回车键") if p == pd: print "密码正确" else: print "密码错误"
print getpass.getuser() 返回用户的登录名 //Administrator //root
系统性能信息模块 psutil
IP 地址处理模块 IPy
DNS处理模块 dnspython
python 文件的引用
想引入../pck/test.py 里的函数
import imp test=imp.load_source('test','../pck/test.py') import test a = test.add(4,6) print a
如果test.py 在当前目录下,可以直接这样使用
import test a = test.add(4,6) print a
lib.py 内容如下 def make(*args): for i in args: print i
test.py 内容如下
读取解析修改配置文件模块 configobj
[root@jinkangldap ~]# cat test.ini
[server]
name = kkk
host = 127.0.0.1
[root@jinkangldap ~]# python w.py
kkk
ppp
[root@jinkangldap ~]# cat w.py
from configobj import ConfigObj
def get_config(configfile,section,option):
config=ConfigObj(configfile)
return config[section][option]
def update_config(configfile,section,option,val):
config=ConfigObj(configfile)
config[section][option]=val
config.write()
return
name=get_config("test.ini","server","name")
print name
update_config("test.ini","server","name","ppp")
name=get_config("test.ini","server","name")
print name
shutil 文件操作模块 copy copytree move 等操作
import shutil import os cut_dir = os.getcwd() files = os.listdir(cut_dir) filename1 = os.path.join(cut_dir,"1.txt") filename2 = os.path.join(cut_dir,"2.txt") shutil.copy(filename1, filename2)
关于脚本参数 常用的模块
一个是常用的sys.argv了 参数较少时可以用用
import sys for i in sys.argv[1:]: print i
一个是getopt模块,感觉不咋好用
import sys,getopt def main(argv): inputfile="" outputfile="" try: opts,args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) print opts print args except getopt.GetoptError: print "python xxx.pt -i inputfilename -o outfilname" for opt,arg in opts: if opt == "-h": print "python xxx.pt -i inputfilename -o outfilname" elif opt in ("-i","--ifile"): inputfile = arg elif opt in ("-o","--ofile"): outputfile = arg else: print "python xxx.pt -i inputfilename -o outfilname" print "输入文件 %s" %(inputfile) print "输出文件 %s" %(inputfile) if __name__ == '__main__': main(sys.argv[1:]) $ python test.py -i inputfile -o outpufile $ python test.py --ifile inputfile --ofile outpufile
还有一个是 argparse 模块,个人觉得比较好用些
import argparse def main(): parser = argparse.ArgumentParser(description="Demo of argparse") parser.add_argument('-n','--name', default='Li',help="please enter your name") parser.add_argument('-y','--year', default='20', help="please enter your age") args = parser.parse_args() print(args) name = args.name year = args.year print('Hello {} {}'.format(name,year)) print "hello %s your age is %d" %(name,int(year)) if __name__ == '__main__': main()
python test.py -n kk -y 18
python test.py --name kk --year 18
array 数组模块,与python普通list不同,array数组内的元素必须是同类型的。
from array import * array1 = array('i', [10,20,30,40,50]) for x in array1: print(x)
lxml 用来解析html元素
# XPath常用规则 # / 从当前节点选取直接子节点 # // 从当前节点选取子孙节点 # . 选取当前节点 # .. 选取当前节点的父节点 # @ 选取属性 # * 通配符,选择所有元素节点与元素名 # @* 选取所有属性 # [@attrib] 选取具有给定属性的所有元素 # [@attrib='value'] 选取给定属性具有给定值的所有元素 # [tag] 选取所有具有指定元素的直接子节点 # [tag='text'] 选取所有具有指定元素并且文本内容是text节点
<li><a href="http://baijiahao.baidu.com/s?id=1655073048846026024" target="_blank" mon="a=9">2020年游戏行业有哪些新趋势</a></li>
from lxml import html
from lxml import etree
page = requests.get("http://www.nipic.com/")
或者1 tree = html.fromstring(page.content)
或者2 tree = etree.HTML(page.content)
要想获取 2020年游戏行业有哪些新趋势 这个内容
image_src = tree.xpath("//li/a")
for i in image_src:
print i.text
或者
image_src = tree.xpath("//li/a/text()")
for i in image_src:
print i
要想获取http://baijiahao.baidu.com/s?id=1655073048846026024
image_src = tree.xpath("//li/a/@href")
for i in image_src:
print i
包含关系 input标签中 包含 name="tn"
<input type="hidden" name="tn" id="tn" value="news"/>
image_src = tree.xpath("//input[contains(@name,'rn')]")
for i in image_src:
print i
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程