python笔记(持续更新ing)
1.写入文件
with open(‘url’, mode=’’, excoding=‘utf-8’) as f:
f.write(text)
2.爬虫
import requests
response = requests.get(url, headers=headers, proxies=proxies, cookies=cookies)
response.encoding = 'utf-8'
content = response.text()
报错:
SSLError: HTTPSConnectionPool(host=’’, port=443):
Requests 可以为 HTTPS 请求验证 SSL 证书,就像 web 浏览器一样。SSL 验证默认是开启的,如果证书验证失败,Requests 会抛出 SSLError:
requests.get(url,verify=False)
3.连接数据库(mysql)
import pymysql
#数据库信息
config = {
"host": "",
"user": "",
"password": "",
"database": "",
"charset": "utf8"
}
params = (a,b,c)
sql = "insert table(a,b,c) values(%s,%s,%s)"
db = pymysql.connect(**config ) #连接数据库,可以用变量或者参数形式
cursor = db.cursor() #创建游标,实际调用了cursors模块下的Cursor类,用来和db交互
try:
#执行单条sql,若要批量执行使用executemany(sql,params),params用元组形式
cursor.execute(sql,params)
except Execption as e;
db.rollback() #事务回滚
else:
db.commit() #增删改数据需要提交
cursor.close() #关闭游标
db.cursor() # 关闭数据库
4.日志
import logging
#创建Logger对象,日志记录的工作主要由Logger对象来完成
logger = logging.getLogger(‘logName’)
#日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。
logger.setLevel(logging.INFO)
fh = logging.FileHandler() #日志输出到文件
sh = logging.StreamHandler #日志输出到流
#format指定输出的格式和内容
#%(levelname)s:打印日志级别的名称
#%(filename)s:打印当前执行程序名
#%(funcName)s:打印日志的当前函数
#%(asctime)s:打印日志的时间
#%(message)s:打印日志信息
formatter = logging.Formatter(’%(asctime)s-%(filename)s-%(levelname)s-%(message)s’)
fh.setFormatter(formatter)
logger.addHandle(fh)
#5个等级,分别对应5种打日志的方法: debug 、info 、warning 、error 、critical
logger.info(“要输出的日志信息”)
5.链接hive
pip install pyhive
from pyhive import hive
conn = hive.Connection(host='', database='', username='', port=10000, auth='NOSASL')
cursor = conn.cursor()
cursor.execute('')
执行报错:
ModuleNotFoundError: No module named 'sasl'
cmd下安装sasl
pip install sasl
报错
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
下载sasl‑0.2.1‑cp36‑cp36m‑win_amd64.whl (cp36代表对应Python版本3.6)
地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
再次安装
pip install d:/sasl‑0.2.1‑cp36‑cp36m‑win_amd64.whl
pip list # 成功安装sasl
–还需要以下依赖包
pip install thrift
pip install thrift_sasl
报错
在这里插入代码片
查看Thrift Server
ps -aux | grep hiveserver2
查看thrift port
netstat -nl | grep 10000
6.zip解压缩
–解压.zip
import os
import sys
import zipfile
print("Processing File " + sys.argv[1])
file=zipfile.ZipFile(sys.argv[1],"r") # "r":解压缩;"w":压缩
for name in file.namelist():
# zipfile会将所有文件名用CP437来编码
# 先用CP437编码encode成 bytes,再以gbk格式解码成中文string
utf8name=name.encode('cp437').decode('gbk')
pathname = os.path.dirname(utf8name)
if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name)
if not os.path.exists(utf8name):
fo = open(utf8name, "wb")
fo.write(data)
fo.close
file.close()
–执行代码
python3 jieya.py *.zip
7.遍历文件
import os
path = "" # 文件夹路径
list = os.listdir(path) # 文件名列表
for i in range(len(list)):
file_name = list[i] # 文件名
list_dir = os.path.join(path, list[i]) # 文件完整路径
if os.path.isfile(list_dir):
cont = open(list_dir, mode='r', encoding='utf-8') # 打开文件
read_lines = cont.readlines() # 读取文件