python
执笔写回憶
人生苦短,才学Python!
展开
-
通过python实现同步修改本地电脑时间
通过python实现同步修改本地电脑时间.....原创 2022-11-08 10:20:10 · 3201 阅读 · 1 评论 -
python3 bytes类型和str类型互转
bytes 转换为 strstr(b,encoding="utf-8")import chardet# 查看原有变量的编码类型# ret: {'encoding': 'ascii', 'confidence': 1.0, 'language': ''}ret = chardet.detect(变量)结果值= str(变量, encoding=ret['encoding'])str 转换为 bytesb=bytes(str1, encoding='utf-8')print...原创 2021-04-12 13:47:16 · 533 阅读 · 0 评论 -
Python给定一个16进制的字符列表,进行排序
原始16进制数据:s = ['17a', '1', '16', '1f']思路:打算将s转换成十进制,并存储到字典中,key值就是原始16进制数据,value就是十进制数据,前提是原始16进制没有重复数据,最后按照value值进行排序,再取出key值dic = {}for i in s: dic[i] = int(i,16)dic = {'17a': 378, '1': 1, '16': 22, '1f': 31}根据value值进行从小到大排序:# 通过key这个参数,.原创 2020-08-13 10:44:36 · 1241 阅读 · 0 评论 -
selenium模拟点击京东商城搜索页产品
#!/usr/bin/env pythonimport timefrom selenium import webdriverfrom selenium.webdriver import ChromeOptionsfrom selenium.webdriver.common.keys import Keysclass JD(object): def __init__(self): # 反爬机制代码开始,采用此代码在F12控制台输入window.navigator.web.原创 2020-07-31 19:02:37 · 706 阅读 · 0 评论 -
Could not open CONNECT tunnel with proxy错误异常捕获TunnelError
scrapy中当我们使用代理爬取页面的时候,提示如下错误:Could not open CONNECT tunnel with proxy 14.115.105.155:808 [{'status': 307, 'reason': b'Temporary Redirect'}]很有可能已加入对方黑名单,可以用如下命令捕获异常,并删除这个代理:from scrapy.core.downloader.handlers.http11 import TunnelErrorif isinstanc原创 2020-07-30 12:25:03 · 53706 阅读 · 1 评论 -
Python将列表中的大写字母转换成小写
如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法用列表生成式,通过if语句保证列表生成式能正确地执行,将列表中的大写字母转换成小写:>>> L = ['HTTP://171.112.165.176:9999', 'HTTPS://218.24.16.198:43620',18,'Abc',None,'aaa']>>> [s.lower() for s in L if isinstance(s,str)==True]['.原创 2020-07-24 16:18:54 · 8765 阅读 · 0 评论 -
Python中str转为dict的两种解决方法,及json.decoder.JSONDecodeError报错处理
python中str类型转dict类型方法:第一种用:evalbook= "{'book_name':'python','url':'http://www'}"book_dic = eval(book)是将字符串str当成有效的表达式来求值并返回计算结果,当处理多维字典就不行了第二种推荐:jsonimport jsonbook = '{"book_name":"python","url":"http://www"}'book_dic = json.loads(book)请原创 2020-07-13 17:54:34 · 1387 阅读 · 0 评论 -
redis学习笔记
// 启动服务redis-server redis.windows.conf// 启动客户端redis-cli --raw// 选择库,0代表默认库select 1// 清空整个数据库,慎用!!flushall// 清空当前数据库flushdb// 当前数据库key的数量dbsize// 查看设置项config get *// ***键key的命令***// 查看所有keykeys *// 查看以p开头的keykeys p*// 判断当前库中有没有one键exi.原创 2020-07-12 19:45:27 · 110 阅读 · 0 评论 -
将大量form表单键值对用sublime处理成字典
选择内容替换的方式是用正则表达式:内容填写(需要把header文件内容处理成字典,中间有个空格,所以加个\s):^(.*):\s(.*)$替换为填写(注意最后有英文逗号):"\1":"\2",原创 2020-07-11 11:18:45 · 297 阅读 · 0 评论 -
json的相关操作,以及json格式文件转存到csv文件
import json,csv# 一、字符串和 dict list转换json_str = '[{"name":"张三","age":20},{"name":"李四","age":10}]'# json格式字符串 ----dict,liststr_list = json.loads(json_str)print(str_list)print(type(str_list)) # list# dict,list----strjson_list = [{"name":"张三","age":2.原创 2020-07-07 14:49:21 · 1334 阅读 · 0 评论 -
python利用cookiejar和requests.session()模拟登录,访问登录后页面操作
import urllib.requestfrom http import cookiejarfrom urllib import parselogin_url = 'https://pos.XXXXX.com/j_spring_security_check'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.原创 2020-07-06 13:21:18 · 633 阅读 · 0 评论 -
response.replace(body=response.text.replace(‘\xa0‘,‘‘)),scrapy抓取网页含\r \t \n \xa0时,修改response方法
xpath抓取数据值有\r\n\t时去掉的方法:https://blog.csdn.net/z564359805/article/details/101597953抓取网页含\r \t \n时,用normalize-space出现特殊符号有时候并不会成功,例如:['商家 \xa0厦门有限公司'],'\xa0'在网页源码中是' ',可以用如下方法:方法一:修改response这种方法是修改网页代码里面的数据,'\xa0'在网页源码中是' ',个人觉得毕竟不是筛选原创 2020-07-02 16:01:09 · 2866 阅读 · 0 评论 -
selenium获取结果转为json格式
from selenium import webdriverfrom bs4 import BeautifulSoupoption = ChromeOptions()option.add_experimental_option('excludeSwitches', ['enable-automation'])driver = webdriver.Chrome(options=opti...原创 2020-03-26 12:51:03 · 4320 阅读 · 0 评论 -
Python xlrd模块详细介绍并读取Excel表中的数据
1、xlrd库的安装pip install xlrd2、xlrd模块的一些常用命令①打开excel文件并创建对象存储data = xlrd.open_workbook(文件路径)②获取文件中所有工作表的名称data.sheet_names()③根据工作表的名称获取里面的行列内容table = data.sheet_by_name('Sheet1')④获取工作表...转载 2020-02-14 15:53:33 · 1476 阅读 · 0 评论 -
m3u8转换为MP4格式
# convert_m3u8.py# -*- coding:utf-8 -*- import sys import os from glob import glob #获取需要转换的路径 def get_user_path(argv_dir): if os.path.isdir(argv_dir): return argv_dir e...原创 2018-07-15 19:12:42 · 13263 阅读 · 0 评论 -
Python中requests模块对代理IP的有效性验证
#!/usr/bin/env python# coding=utf-8# 代理IP验证有效性# https://www.xicidaili.com/nn/# https://www.kuaidaili.com/free/inha/1/import urllib.requestimport threadingdef isActiveProxy(): url = "htt...原创 2019-03-21 14:03:30 · 1344 阅读 · 0 评论 -
Python3中str类型与dict字典类型的相互转换
在Python 中的“dict”和“str”类型转换:第一种:“dict”转为“str”:mystr=str(dict1)“str”转为“dict”:①mydict=eval(mystr)②: ...原创 2019-03-21 11:05:38 · 4484 阅读 · 0 评论 -
python3中判断readline读到文件末尾
python中判断readline读到文件末尾fp = open('somefile.txt')while True: line = fp.readline() if not line: # 等价于if line == "": breakPython中,空串的not返回true,即not line时为读到EOF(文件末尾)。在文件中,如果遇到一...转载 2019-02-25 23:27:45 · 5251 阅读 · 0 评论 -
Python统计一个字符串中的每一个字符出现了多少次
from collections import Counterli = "j\xa0\xa0\xa0ddd\xa0cccc"s = Counter(li)print(s) # s是个字典 Counter({'\xa0': 4, 'c': 4, 'd': 3, 'j': 1})print(s)['\xa0'] # 4原创 2019-01-29 11:00:27 · 727 阅读 · 0 评论 -
Python3.x标准模块库目录
文本1. string:通用字符串操作2. re:正则表达式操作3. difflib:差异计算工具4. textwrap:文本填充5. unicodedata:Unicode字符数据库6. stringprep:互联网字符串准备工具7. readline:GNU按行读取接口8. rlcompleter:GNU按行读取的实现函数二进制数据9. struct:将...转载 2018-11-26 13:37:10 · 291 阅读 · 0 评论 -
python3利用scrapy_redis将pos后台数据包含价格、规格、起订量、销售区域等信息全部保存到excel中
1、创建Scrapy项目scrapy startproject PosProductRedis2.进入项目目录,使用命令genspider创建Spiderscrapy genspider posproductredis XXXX.com 3、定义要抓取的数据(处理items.py文件)# -*- coding: utf-8 -*-import scrapyclas...原创 2018-08-03 19:22:22 · 371 阅读 · 0 评论 -
python爬取玉米、小麦、水稻信息数据到本地为网页形式和mysql数据库中
1、创建Scrapy项目scrapy startproject ExGrain2.进入项目目录,使用命令genspider创建Spiderscrapy genspider exgrain ex-grain.cn3、定义要抓取的数据(处理items.py文件)# -*- coding: utf-8 -*-import scrapyclass ExgrainItem(s...原创 2018-08-03 18:25:36 · 1263 阅读 · 0 评论 -
python3从本地excel表格获取账号,实现后台系统的登录,并获取运费后保存到表格中
1、首先有一个账号的excel文件,里面包含企业名称、登录账号以及登录密码;2、获取账号文件里面的信息,实现模拟登录,登录成功则获取运费,登录失败则提示并且将失败的手机号颜色标红;3、后台网站用XXXX代替。#!/usr/bin/env python# coding=utf-8# 获取后台系统的运费规则,保存到表格中,其中登录账号从本地表格中获取# 增加了退出账号功能和多次尝试...原创 2018-08-03 18:07:04 · 733 阅读 · 0 评论 -
python3连接mysql数据库,登陆、注册功能统一
连接数据库操作封装代码:#!/usr/bin/env python# coding=utf-8# mysql封装使用import pymysqlclass MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host = host se...原创 2018-07-26 15:13:29 · 1488 阅读 · 0 评论 -
python3将Redis数据库数据导入到MySQL数据库中
指定redis数据库信息和mysql数据库,然后无限循环从redis读取数据,最后写入mysql里#!/usr/bin/env python# coding=utf-8# 将获取到的产品信息从redis数据库存到mysql的:数据库'产品信息表'中import jsonimport redisimport pymysqldef main(): # 指定redis数据库...原创 2018-07-26 14:55:27 · 2572 阅读 · 1 评论 -
二叉树算法
#!/usr/bin/env python# coding=utf-8# 二叉树算法# 创建节点类class Node(object): def __init__(self,item): # 值 self.elem = item # 左节点 self.lchild = None # 右节点 ...原创 2019-04-04 18:16:35 · 162 阅读 · 0 评论 -
python3基础,将数字倒置(321转换为123、120转换为21 、 -1234转换为-4321 ),并添加测试用例
"""Filename: solution.py Created on Thu Mar 28 11:06:08 CST 2019将321转换为123、 120转换为21 、 -1234转换为-4321 ,数值介于-2**31和2**31-1否则结果为0"""# 方法一class Solution1: def reverse(self, x: int) -> int:...原创 2019-03-28 16:38:25 · 4954 阅读 · 0 评论 -
python3中BeautifulSoup练习
from bs4 import BeautifulSoupimport lxmlhtml ='<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>'soup = BeautifulSoup(html,'lxml')# 多种获取html内容的方式print(soup.fi...原创 2018-05-31 11:07:35 · 493 阅读 · 0 评论 -
Python3中argparse基本用法
argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。#!/usr/bin/env python# coding=utf-8import argparsedef main(): # description描述这个参数解析器是干什么的,当我们在命令行显示帮助信息的时候会看到description描述的信息 parser = argpar...原创 2019-10-09 14:44:10 · 3457 阅读 · 1 评论 -
xpath抓取数据值有\r\n\t时,去掉的方法normalize-space()
主要使用:normalize-space()之前写法:response.xpath('//*[@id="to"]/tbody/tr/td[3]/a/text()')修改后:response.xpath('normalize-space(//*[@id="to"]/tbody/tr/td[3]/a/text())')原创 2019-09-28 09:51:41 · 2757 阅读 · 3 评论 -
python 3保留两位小数
>>> a = 1>>> b = 3>>> print(a/b)0.3333333333333333>>> #方法一:... print(round(a/b,2))0.33>>> #方法二:... print(format(float(a)/float(b),'.2f'))0.33>...原创 2019-08-19 16:24:42 · 7764 阅读 · 0 评论 -
kivy打包apk环境(win)
需要借助到虚拟机下载的虚拟机及系统下载地址为:链接:http://pan.baidu.com/s/1gf5S8lP 密码:buj41.先安装虚拟机:VirtualBox-4.3.12-93733-Win.exe2.安装插件:Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack3.安装系统:kivydev.ova(...转载 2019-06-18 15:11:13 · 4935 阅读 · 1 评论 -
kivy sdl2 - ImportError: DLL load failed: 找不到指定的模块(用kivy开发第一个python app报错)
我这里用pycharm安装Kivy(1.11.0)和Cython(0.29.10),然后执行以下代码:from kivy.app import Appfrom kivy.uix.button import Buttonclass TestApp(App): def build(self): return Button(text="Hello,kivy")if...原创 2019-06-18 13:43:45 · 3363 阅读 · 0 评论 -
Python3中Object of type 'datetime' is not JSON serializable解决方法
django中设置session会话过期时候,加了个时间:request.session.set_expiry(timedelta(days=5))出现了此错误。解决办法:在django的setting.py中添加:SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'pytho...转载 2019-06-13 22:07:06 · 6121 阅读 · 2 评论 -
右下角弹窗封装模块show_msg
#!/usr/bin/env python# coding=utf-8# 在右下角进行弹窗提示 import win32guiimport win32conimport time class TestTaskbarIcon: def __init__(self): # 注册一个窗口类 wc = win32gui.WNDCLASS() ...原创 2019-05-14 11:04:40 · 756 阅读 · 0 评论 -
Python3中创建文件夹目录的时候特殊符号处理转义
# 创建目录的时候,不能包含一些特殊字符要转义news_title = ''char_list = ['*','|',':','?','/','<','>','"','\\']news_title_result = news_titlefor i in char_list: if i in news_title : news_title_result ...原创 2019-04-23 09:34:03 · 2843 阅读 · 0 评论 -
python3获得一串空格分隔的数字,并且必须返回最高和最低的数字
在这个小任务中,您将获得一串空格分隔的数字,并且必须返回最高和最低的数字。例:high_and_low("1 2 3 4 5") # return "5 1"high_and_low("1 2 -3 4 5") # return "5 -3"high_and_low("1 9 3 4 -5") # return "9 -5"说明:所有数字都有效Int32,无需验证。 输入...原创 2019-04-03 13:14:41 · 1473 阅读 · 0 评论 -
Python测试用例方案
"""Filename: solution.py Created on Thu Mar 28 11:06:08 CST 2019测试用例"""class Solution1: def reverse(self, x: int) -> int: # 算法写在这里 ret = 0 return ret#========...原创 2019-03-28 17:07:10 · 729 阅读 · 0 评论 -
urllib简单爬取m3u8地址的所有ts文件并下载
#!/usr/bin/env python# coding=utf-8# 爬取m3u8地址的所有ts文件并下载到"D:/video2/",一般会有几千个文件耐心等待# 下载阿丽塔# https://sohu.zuida-163sina.com/20190223/TnSFbZPj/800kb/hls/jQQWmUN39911775.ts 其中一个ts文件地址# 第一步通过查看源代码可看...原创 2018-07-15 18:00:36 · 9231 阅读 · 0 评论 -
python的os模块简单重命名操作
# coding=utf-8import os# 将1355..ts文件名修改为1355.ts# 要修改的文件名目录地址path = "D:/video/"# 获取当前目录下的所有文件dirlist = os.listdir(path)for name in dirlist: # 如果扩展名是.ts if name[-3:] ==".ts": # 查找第一个点的位置...原创 2018-07-14 21:41:26 · 2365 阅读 · 0 评论