Python 基本使用
文章平均质量分 53
程序猿-张益达
我们登上并非我们所选择的舞台,演出并非我们所选择的剧本
展开
-
python list 完全相等的坑:元素顺序不同判定为不相等
【代码】python list 完全相等的坑:元素顺序不同判定为不相等。原创 2023-04-07 10:10:25 · 527 阅读 · 0 评论 -
Python中xmltodict对xml的操作
该函数有一个streaming模式适合用来 处理不能放入内存的文件,它还支持命名空间。xmltodict是另一个简易的库,它致力于将XML变得像JSON.xmltodict 也有unparse函数让您可以转回XML。这是第三方包,在处理前先用pip来安装。原创 2023-02-10 10:58:25 · 479 阅读 · 0 评论 -
pyhon把程序打包为whl
首先把需要打包的py文件放在一个文件夹内(我的文件夹名为coordTrans,记住这个名字,后面要用)。同时,该文件夹内还需要有一个名字为__init__.py的文件,该py程序内容为空也可以,但必须有,因为这是包的引导初始化文件。其中coordTrans为包名(文件夹名),也就是文章开头,让你记住的那个文件夹;在setup.py文件所在路径下运行cmd运行打包命令,要打包成egg文件或whl文件,需要改变最后传入的参数。如果是conda环境的话,这个包是自带的,不需要另外安装。原创 2023-01-10 15:58:15 · 721 阅读 · 0 评论 -
Python 删除文件最后一行
今天在修改数据分析平台的BUG时候,发现两个历史遗留问题。严重的是第二个问题,因为在写文件的时候都是这样写的因此,每个文件最后都有一个空行。在前端显示的时候老出现前端显示文件但是因为有一个空行就不能分页,因为在遍历的时候,遇到的item都不一样。原创 2022-09-22 10:50:23 · 2260 阅读 · 0 评论 -
Python 文件处理常用方法
整个删除,无论有没有文件找到文件一个个删除。原创 2022-09-22 10:24:16 · 202 阅读 · 0 评论 -
Python 退出程序函数
Python有4个不同的退出程序的函数,exit(),quit(),os_exit()和本文要介绍的sys.exit()。exit()和quit()是一样的,它俩的功能基本上与sys.exit()一样,只有os._exit()有些简单粗暴。sys模块的exit函数,通过抛出一个SystemExit异常来尝试结束程序,Python代码可以捕获这个异常来进行一些程序退出前的清理工作,也可以不退出程序。捕获了sys.exit()函数抛出的异常,处理之后,还要程序继续退出,就需要直接使用exit或quit函数。原创 2022-09-22 10:17:28 · 5115 阅读 · 0 评论 -
python-flask中Object of type ‘Decimal‘ is not JSON serializable 报错_解决方法
在使用flask进行开发的时候发现Decimal类型的数据无法在作为 JSON 通过相应消息体序列化返回,出现jsonschema.exceptions.ValidationError错误:jsonschema.exceptions.ValidationError: '1000.00' is not of type 'number'研究flask_restful/representations/json.py代码发现问题出现在json.dump()中def output_jso...原创 2022-05-18 11:34:14 · 3953 阅读 · 0 评论 -
python导出requirements.txt
1.安装pip3 install pipreqs 2.使用方法先进入虚拟环境,cd到根目录下然后输入命令:pipreqs ./ --encoding=utf-8结果为:INFO: Successfully saved requirements file in ./requirements.txt原创 2022-05-18 11:05:05 · 481 阅读 · 0 评论 -
Python 字典对象格式化输出
字典对象直接打印会发现显示为一行dic = {"name": "小明", "age": 10}print(dic){‘name’: ‘小明’, ‘age’: 10}如果这个对象的内容比较少还行,如果太长的话,这种输出会看着特别难受,还不清楚,那么如何让它格式化输出呢?这里可以应用json.dumps()方法格式化输出data = json.dumps(dic, indent=4,ensure_ascii=False, sort_keys=False,separators=(原创 2022-05-12 11:49:39 · 3290 阅读 · 0 评论 -
selenium 使用技巧
Web自动化去除“Chrome正在受到自动化测试软件的控制“from selenium import webdriverimport timeoption =webdriver.ChromeOptions()# 旧版本浏览器-解决控制提示(97.0.4692.71版本未生效)# option.add_argument('disable-infobars')# 新版本谷歌浏览器-解决控制提示option.add_experimental_option('useAutomationEx原创 2022-03-28 17:20:28 · 417 阅读 · 0 评论 -
PhantomJS包不存在解决
新版的 selenium已经放弃PhantomJS,所以才会出现module 'selenium.webdriver' has no attribute 'PhantomJS'。PhantomJS安装都是最新版本,pip install selenium安装的也是最新版本。所以把selenium版本降低。1.先把selenium卸载,代码如下:pip uninstall selenium2.安装selenium==2.48.0版本的,代码如下:pip install seleniu.原创 2022-03-14 14:20:42 · 1414 阅读 · 0 评论 -
pip install XXX 安装失败
记录Linux中安装软件遇到的问题pip install XXX报错解决办法:python -m pip install XXX同理:pip3 install XXX改为:python3 -m pip install XXX原创 2022-03-14 14:14:50 · 1491 阅读 · 0 评论 -
Python进程间通信
通信方式进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块主要通过队列方式队列:队列类似于一条管道,元素先进先出需要注意的一点是:队列都是在内存中操作,进程退出,队列清空,另外,队列也是一个阻塞的形态Queue介绍:...原创 2022-03-07 15:32:35 · 7798 阅读 · 2 评论 -
python爬虫之xpath的基本使用
一、简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。二、安装pip3 install lxml三、使用1、导入from lxml import etree2、基本使用from lxml import etree wb_data = """ <div&原创 2022-02-10 15:28:57 · 243 阅读 · 0 评论 -
python爬虫常用浏览器标识请求头设置
import randomimport re def get_headers(url, use='pc'): pc_agent = [ "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50", "Mozilla/5.0 (Windows; U; Windows NT .原创 2022-02-10 15:19:12 · 732 阅读 · 0 评论 -
python爬虫(常见爬取失败问题)
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。在采集网站的时会遇到一些比数据显示在浏览器上却抓取不出来更令人沮丧的事情。也许是向服务器提交自认为已经处理得很好的表单却被拒绝,也许是自己的 IP 地址不知道什么原因直接被网站封杀,无法继续访问。原因可能是一.原创 2022-02-10 15:17:41 · 19112 阅读 · 0 评论 -
Python Requests.post()请求失败时的retry设置
1. 问题描述 通常,我们在做爬虫工作或远程接口调用的过程中,往往由于访问频率过快等原因遇到连接超时的报错问题,利用最近调用api.ai.qq.com某个接口举例如下:Traceback (most recent call last):<class 'Exception'> : HTTPSConnectionPool(host='api.ai.qq.com', port=443):Max retries exceeded with url: /fcgi-bin/nlp/nlp_t原创 2022-02-10 14:59:10 · 2358 阅读 · 0 评论 -
Python使用Requests请求网页
安装方式利用 pip 安装$ pip install requests基本GET请求(headers参数 和 parmas参数)最基本的GET请求可以直接用get方法原创 2022-02-10 14:56:19 · 4106 阅读 · 0 评论 -
python 从url中提取域名和path
使用Python 内置的模块 urlparsefrom urlparse import *url = 'https://docs.google.com/spreadsheet/ccc?key=blah-blah-blah-blah#gid=1'result = urlparse(url)result 包含了URL的所有信息>>> from urlparse import *>>> url = 'https://docs.google.com/spre原创 2022-02-09 17:57:01 · 502 阅读 · 0 评论 -
python爬虫之针对http2.0的某网站爬取
http2.0啥东西呢?可以看看下面两个文字参考链接:超强反爬虫方案!Requests 什么的通通爬不了https://mp.weixin.qq.com/s/dFxyRYmqm5if8k-S1MjFJwPython requests在HTTP2.0下的问题 | 小丁的个人博客https://tding.top/archives/9bd92731.html如果你觉得浪费时间的话,可以看我下面说的,精简过的:...原创 2022-02-09 17:55:37 · 4251 阅读 · 0 评论 -
Visual Studio Code使用Python虚拟环境
用命令创建虚拟环境1. 安装虚拟环境的第三方包 virtualenvpip install virtualenv使用清华源安装:pip install virtualenv -i https://pypi.python.org/simple/2. 创建虚拟环境cd 到存放虚拟环境光的地址virtualenv ENV在当前目录下创建名为ENV的虚拟环境(如果第三方包virtualenv安装在python3下面,此时创建的虚拟环境就是基于python3的)virtua.原创 2022-02-09 17:43:08 · 2439 阅读 · 0 评论 -
python 文件读写模式
区别模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 否,追加写 ...原创 2022-02-09 17:33:54 · 803 阅读 · 0 评论 -
Python 原字符串右对齐,前面填充0
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。实例#!/usr/bin/python3str = "this is string example from runoob....wow!!!"print ("str.zfill : ",str.zfill(40))print ("str.zfill : ",str.zfill(50))# 输出结果str.zfill : this is string example from runoob..原创 2022-02-09 17:30:56 · 531 阅读 · 0 评论 -
Python判断文件是否存在
判断文件是否存在主要有两种方法:import osos.path.exists('xxx/xxx/filename') # True/False以上方法中入参的路径可以是文件路径也可以是文件夹路径,所以可以用于判断文件以及文件夹是否存在。但是有一种特殊的情况是可能入参传的是一个文件夹路径,但是文件夹路径的上一层有个相同的文件,例如/usr/local/testfile这是一个文件夹,但是/usr/local路径下有一个文件就刚好叫做testfile,所以这样会产生混乱,所以建议如果是要判断文原创 2022-02-09 17:28:36 · 19798 阅读 · 0 评论 -
Python:列表中,增加元素、删除元素、切片、其它
一、向列表中增加元素list.append(单个元素):在list列表末端增加一个元素; list.extend([元素1,元素2]):在list列表末端增加多个元素; list.insert(元素序号,元素):在list列表任意位置增加一个元素二、从列表中删除元素list.remove(元素):从列表中删除一个元素,且并不要求此元素的位置; del.list[元素序号]:从列表中删除指定位置的元素; list_0 = list.pop(元素):从列表中弹出一个元素,则list列表中少一个原创 2022-02-09 17:23:58 · 1608 阅读 · 0 评论 -
Python 线程间同步之信号量Semaphore
用处信号量semaphore 是用于控制进入数量的锁。有哪些应用场景呢,比如说在读写文件的时候,一般只能只有一个线程在写,而读可以有多个线程同时进行,如果需要限制同时读文件的线程个数,这时候就可以用到信号量了(如果用互斥锁,就是限制同一时刻只能有一个线程读取文件)。又比如在做爬虫的时候,有时候爬取速度太快了,会导致被网站禁止,所以这个时候就需要控制爬虫爬取网站的频率。实例semaphore内部维护了一个条件变量condition,构造函数是:Semaphore(value=1) # v原创 2021-12-30 17:45:41 · 634 阅读 · 0 评论 -
python脚本传递参数
argparse基本用法argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。它的使用也比较简单。1.基本框架下面是采用argparse从命令行获取用户名,该python的文件名为:fun_test.pyimport argparsedef main(): parser = argparse.ArgumentParser(description="Demo of argparse") parser.add_argument('-n'.原创 2021-12-30 16:40:04 · 973 阅读 · 0 评论 -
python 获取当前目录下的文件目录和文件名
os模块下有两个函数: os.walk() os.listdir()# -*- coding: utf-8 -*- import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(file原创 2021-12-30 16:26:44 · 4478 阅读 · 0 评论 -
Python ThreadPoolExecutor线程池
概念Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?以爬虫为例,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,有没有更好的方案呢?其实只需要三个线程就行了,每个线程各分配一个任务,剩下的任务排队等待,当某个线程完成了任务的时候,排队任务就可以安排给这个线程继续执行。这就是线程池的思想(当然没这么简单),但是自己编写线程池很难写的比较完美,还需要考虑复杂情况下的线程原创 2021-12-30 11:22:27 · 25469 阅读 · 2 评论 -
HTTP协议网络请求状态码
常见的HTTP状态码2开头 (请求成功)表示成功处理了请求的状态代码。200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201 (已创建) 请求成功并且服务器创建了新的资源。202 (已接受) 服务器已接受请求,但尚未处理。203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。204 (无内容) 服务器成功处理了请求,但没有返回任何内容。205 (重置内容) 服务器成功处理了请求,但没有返回...原创 2021-12-28 10:29:04 · 714 阅读 · 0 评论 -
Python VScode 配置虚拟环境(virtualenv)
Python 虚拟环境Python 之所以强大,除了语言本身的特性外,更重要的是拥有无所不及的第三方库。强大的软件库,让开发者将精力集中在业务上,而避免重复造轮子的浪费。但众多的软件库,形成了复杂的依赖关系,加上Python2 和 Python3 旷日持久之争,对采用 Python 开发的项目造成了不少困扰,所以 Python 建议,通过虚拟环境工具为项目创建纯净的依赖环境Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Pyth..原创 2021-12-27 14:53:50 · 7474 阅读 · 0 评论 -
Python urllib.quote 解决Python传递中文参数给URL
今天有个需要需要传递中文参数给URL但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。所以我们果断选择用urlencode来处理中文,由于国内外网站编码不同,国内是GBK的,国外是UTF8的。>>> import sys>>> sys.stdin.encoding'GBK'表示我们的环境是GBK的>>> import urllib>>> urllib.quote('编码坑爹'原创 2021-11-25 18:05:11 · 454 阅读 · 0 评论 -
Python 根据月差获取指定月份(近1,2,3,.....月)
需求:想获取当前月的前n个月是几月假设本月是2018年11月,那么上个月就是2018年10月,r如果月差n=2,那么月份就是2018年9月,n是可变的。可能有人会说,用 datetime.replace 方法将 month-1 就好了,咋看起来没问题,实际上这是有 bug 的,因为month 的范围只能是 1-12所以本人选择以递归的方式去解决该问题def get_month_time(today_time, month): today = today_time.replace.原创 2021-11-22 15:45:01 · 862 阅读 · 0 评论 -
Python join()方法(自定义符号拼接字符串)
描述Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。语法join()方法语法:str.join(sequence)参数sequence -- 要连接的元素序列。返回值返回通过指定字符连接序列中元素后生成的新字符串。实例以下实例展示了join()的使用方法:#!/usr/bin/python# -*- coding: UTF-8 -*- str = "-";seq = ("a", "b", "c"); # 字符串序原创 2021-11-09 15:40:25 · 534 阅读 · 0 评论 -
Python map() 函数
描述map()会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。语法map() 函数语法:map(function, iterable, ...)参数function -- 函数 iterable -- 一个或多个序列返回值Python 2.x 返回列表。Python 3.x 返回迭代器。实例以下实例展示了 map() 的使用方..原创 2021-11-08 16:10:03 · 131 阅读 · 0 评论 -
Python lambda使用
当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:# 匿名函数g = lambda x:x+1# 与lambda x:x+1是同一个含义,只不过lambda是匿名,没有使用def定义函数名def g(x): return x+1非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是原创 2021-11-03 14:50:55 · 69 阅读 · 0 评论 -
Python 输出百分比
方式1:直接使用参数格式化:{:.2%}显示小数点后2位:>>> print('percent: {:.2%}'.format(42/50))percent: 84.00%不显示小数位:{:.0%},即,将2改为0:>>> print('percent: {:.0%}'.format(42/50))percent: 84%方式2:格式化为float,然后处理成%格式: {:.2f}%显示小数点后2位:>>> prin原创 2021-11-03 14:42:29 · 467 阅读 · 0 评论 -
Python datatime使用
python中的datetime模块提供了操作日期和时间功能,该模块提供了五种核心对象:datetime时间日期类型 date日期类型 time时间类型 tzinfo时区类型 timedelta时间差类型今天为大家介绍一下datetime模块的具体使用方法与python日期时间计算与比较的相关实例一、日期时间模块datetime类(一)、datetime模块中包含如下类:类名 功能说明 date 日期对象,常用的属性有year, month, day ti原创 2021-10-26 14:28:07 · 3999 阅读 · 0 评论 -
Python 时间的基本处理(datetime)
datetime是Python处理日期和时间的标准库获取当前时间import datetime day = datetime.datetime.now()day2 = datetime.date.today()print("当前年月日时分秒:", day)print("只查看年月日:", day2) 执行结果: 当前年月日时分秒: 2018-09-19 21:18:57.132640 只查看年月日: 2018-09-19只查看时分秒import datetime .原创 2021-10-26 13:52:06 · 541 阅读 · 0 评论 -
Python 计算两个日期相差的天数
有时候需要算两个日期相差多少天,如果两个日期相差大,真的去数肯定很麻烦,还得计算有的是有三十天,有的是三十一天,还有闰年和平年的区别。而这时候如果有一个方法或者函数,只需要输入要计算的两个日期即可,那就方便快捷了很多。首先导入需要用到的时间和日期库,创建日期相差的方法函数: import datetime def count_differ_days(self, time_a, time_b): """ 计算日期相差天数 """ .原创 2021-10-21 13:53:57 · 9128 阅读 · 0 评论