安装vmware
安装mac:
- mac打不开:客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法
- 磁盘空间不足:https://blog.csdn.net/weixin_44505035/article/details/113825775
安装vmware
安装mac:
你好,我是Python程序员晚枫,我的微信:CoderWanFeng
⭐今年我推出了陪你学习1年的Python学习服务:👇
如果需要和晚枫1对1交流技术问题,可以扫码下图加好友👇
大数据学习的路线图,见文章👉路线图
以下是文章中提到的学习资料,也是我自己正在学习的内容,欢迎添加我的微信,和我交流~
以下是免费读者交流群,可以进群和大家讨论学习
大家好,这里是小编晚枫。
鸽了半个月的6月总结,终于有时间写了。前文回顾:5月总结
6月收获不少,
拿到了心心念念的阿里云专家博主、华为云享专家、百度平台教育创作者认证。
作品被更多人看到,受到了更多人的认可,价格自然就水涨船高。
合理缴税的情况下,遇到合理的恰饭我也不拒绝。
但是每次都约到夜里0点以后的沟通,也成为了家常便饭。我好像睡个早觉啊~
到今年6月,正好是毕业后干了3年程序员,也写了3年自媒体了。
期间也获得过一些所谓的荣誉和实打实的收益,更重要的是见识到了很多牛人,让我更加深刻的认识到自己的差距。
自己从法学院毕业后,凭着对编程的爱好转行程序员,从完全0基础,到现在转行程序员的第3年,很庆幸,这条路我依然乐在其中。
但与此同时,我也通过这几年对技术的学习和应用,认识到自己才刚刚踏入编程世界的大门,而基础理论和专业知识才可以决定接下来的路,能走多远。
所以6月以来,做了2件重要的调整:
根据费曼学习法,能把一个知识给别人讲明白,我自己也会理解得更好。这也是我3年前做自媒体的初衷。
但是自媒体接广告恰饭赚钱,更多像是一个只能写词的作者,把自己幸苦创作的作品,拿给别人演唱。自己距离用户,太远了。
所以我也希望接下来,通过在这个星球里的输出和答疑,给我自己的读者提供学习上更直接有效,更有价值的帮助。
也感谢大家的支持,星球陆续有朋友加入了。
关于星球,特别欢迎喜欢我、认可我的读者加入,
但是在这里我也特别想给每一位私信我问问题的朋友,说1个无奈的点。
2019年我刚开始写文章、录视频,几十位、几百位朋友关注我的时候,我都是尽力回复每个人的问题。但是现在我做不到了,我给你快速地算个时间账:
单说微信这一个平台,我平均每天收到20+个提问,假设每人答疑最少6分钟,我每天需要120分钟,也就是2个小时用来答疑。而我全平台都有账号,目前全网粉丝20w+,再加上我的本职工作是本来就很紧张的程序员,我是真的回复不过来。
观众老爷们,这种情况下,如果是你,你怎么办?
我的做法就是,从今年粉丝暴涨后,我就不做免费答疑了,我只能先把这个知识星球里的问题,解决好。
加入星球之前,你可以和我私信沟通一下你的学习目的,我评估一下能不能帮助你,或者给你一些实用的建议。如果我听完你的问题,觉得自己帮助不了你,我会直接建议你另请高明。我的微信,点击直达👉CoderWanFeng
你只要加入这个星球,我都会认真履行上面说的服务,认真去答疑,和大家一起学习进步。
如果我写了这3年:几十万字的文章、几百集的视频,都不能让你信任我,依然觉得我的时间和经验一文不值的话,那我没法选择,我只能给认可我的朋友回复问题了。或者你可以继续去看我的文章。全网同名:程序员晚枫,你也可以直接百度一下:程序员晚枫,就可以看到大量我的文章和视频。
以后再有朋友加我问问题,我就直接给你我的星球二维码和这篇文章。一方面,我不会因为你的问题紧急而坐地起价,我的时间明码标价;另一方面,我也不会做什么优惠活动。365元:制定学习计划 + 整理学习资料 + 有问必答 + 服务1年,这目前是我的底线。
除了工作、答疑的时间,我自己就继续埋头学更多的技术、写更有价值的文章,去继续提高自己;去拿到更多平台的认可;无聊了哪怕再去流量变现,接一些2w+、未来可能会3w+的恰饭呢。
当然了,如果其实你就只有1个问题或者你只是想有个Python学习环境,先了解了解,我建议你加入我的👉读者群,和大家进行沟通交流。
1元进群,防止无良广告。你也可以直接加我微信🏠CoderWanFeng,说一下你能提供的价值,我免费邀请你,非常欢迎能提供价值的朋友。
安卓是1元=10个微信豆,苹果是1元=7个微信豆,价格不一样,平台的问题。
物以类聚,人以群分,我自己是热衷研究技术、分享技术的博主,所以我的读者群里大部分也是这类人,很多小问题,读者群就能帮你解决,不一定非得找我1对1答疑。另外,偶尔我也会在读者群发一些福利活动。
点击直达👉读者群,满500人开新群。
str = ‘pip install python-office {content}’
print(‘-‘.join(str)) # 用来指定拼接符号,拼接出一个字符串,效率比+高
print(str.center(100, ‘*’)) # 字符串居中,左右填充指定内容
print(str.count(‘p’)) # 指定内容,在原str中出现了多少次
print(str.find(‘pip’)) # 包含pip,则返回开始的索引值,否则返回-1。
print(str.index(‘pip’)) # 包含pip,则返回开始的索引值,否则返回Exception。
print(str.rfind(‘ ‘)) # 返回参数字符串在字符串中最后一次出现的位置。没有查询到则返回-1.
print(str.rindex(‘ ‘)) # 返回参数字符串在字符串中最后一次出现的位置。没有查询到则返回Exception.
print(str.replace(‘ ‘, ‘-‘)) # 替换操作,str.replace()函数并不对原有的字符串进行改变。
print(str.ljust(50, ‘‘)) # 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
print(str.rjust(50, ‘‘)) # 它将原字符串右对齐,并使用空格填充至指定长度,并返回新的字符串。如果指定的长度小于原字符串长度,则直接返回原字符串。
print(str.zfill(50)) # 返回指定长度的字符串,原字符串右对齐,前面填充0。
print(str.partition(‘ ‘)) # 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
print(str.rpartition(‘ ‘)) # 类似于 partition() 方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。
print(str.rsplit(‘ ‘)) # 如果给出了 maxsplit,则最多进行 maxsplit 次拆分,从 最右边 开始。
print(str.split(‘ ‘)) # 分割字符串
print(str.splitlines()) # 按照行界符(‘\r’, ‘\r\n’, \n’等)分隔,返回一个包含各行作为元素的列表,默认不包含行界符。
print(str.lstrip(‘p’)) # 删除从开头开始指定的字符串,然后返回结果字符串。注意:只能从开头开始
print(str.rstrip(‘p’)) # 删除 string 字符串末尾的指定字符,默认为空白符,包括空格、换行符、回车符、制表符。
print(str.strip()) # 删除前后的指定字符,默认是空格
print(str.capitalize()) # 第一个字母大写,对中文无效
print(str.lower()) # 字母转为小写,只对英语有效
print(str.casefold()) # 字母转为小写,所有语言都有效,例如:德语
print(str.upper()) # 字母全部转为大写,英语有效
print(str.swapcase()) # 将字符串中的英文字母大小写互换,并返回修改后的字符串。
print(str.title()) # 将字符串中的每个单词首字母大写,其余字母小写,并返回新的字符串。
print(str.startswith(‘pip’)) # 判断是否以pip为开头
print(str.endswith(‘office’)) # 判断str是否以office结尾
print(str.isalnum()) # 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
print(str.isalpha()) # 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
print(str.isascii()) # 如果字符串为空或字符串中的所有字符都是 ASCII,则返回 True,否则返回 False。
print(str.isdecimal()) # 如果字符串中的所有字符都是十进制字符,则返回True
print(str.isdigit()) # isdigit函数检测字符串中是否只包含数字字符。若全部是由数字字符组成的字符串,则返回True,否则返回False。isdigit函数没有参数。
print(str.isidentifier()) # 如果字符串是Python中的有效标识符,返回True。如果不是,则返回False。
print(str.islower()) # islower() 方法检测字符串是否由小写字母组成.
print(str.isupper()) # 检测字符串中所有的字母是否都为大写。
print(str.isnumeric()) # 检查字符串中是否只包含数值字符。此方法只适用于Unicode的对象。
print(str.isprintable()) # 如果字符串中的所有字符都可打印或字符串为空,则返回 True,否则返回 False。
print(str.isspace()) # 检测字符串是否只由空白字符组成。
print(str.istitle()) # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
print(str.maketrans())#此静态方法返回一个 可供 str.translate() 使用的转换对照表。
print(str.translate())
print(str.encode(encoding=’utf8’, errors=’strict’)) # 返回字符串编码后的数据,默认的编码是当前的字符串编码。errors为给定的不同错误处理方法。
print(str.expandtabs()) # 用空格替换\t符号
print(str.format(content=’yyds’))
format_map_dict = {‘content’: ‘yyds’}
print(str.format_map(format_map_dict)) # str.format_map(mapping) 方法仅适用于字符串格式中可变数据参数来源于字典等映射关系数据时。mapping 会被直接使用而不是复制到一个 dict。
大家好,这里是程序员晚枫。
上次我们分享了:4千字总结!Python生成随机数的22种方法,random函数太强了~
今天用一道华为笔试题,带大家深入掌握一项Python技巧:正则表达式。
本文主要分为4个部分:题目解析、常用方法、专业方法、注意事项
先来看一下题目。
看完题目,有以下2个解题思路:
1 | def cut_8ch(str): |
1 | import re |
很明显,思路2实现起来,逻辑更清晰,代码更简洁。原因在哪里呢?
因为使用了str的自带方法和Python自带的标准库:re模块。
之前给大家整理了:
今天我们重点讲一下re模块的使用。
关于str的所有自带方法,如果大家想看的话,可以加入交流群告诉我:交流群。我可以另写一个篇新的文章来介绍。
按照惯例,我们对Python知识的解析,直接拿源码来研究。先看一下python源码里,re模块提供的12个方法👇
找出所有符合条件的内容。
举例:
我们现在有一句话,里面有一些数字,我们想把这些数字都提取出来:程序员晚枫,今年18
岁,家里存款100
多,车有0
辆,多谢各位的10086
+个点赞
1 | import re |
对字符串进行分割。
举例:
假如我们现在有一组字符串:程序员晚枫5
程序员晚枫4
程序员晚枫7
程序员晚枫,其中混进了一些无规律的数字:5、4、7,这次我们想根据这些数字,把这个字符串分割。
1 | import re |
可以替换字符串中的内容。
举例:
假如我们现在有一组字符串:程序员晚枫5
程序员晚枫4
程序员晚枫7
程序员晚枫,其中混进了一些无规律的数字:5、4、7,我们想根据这些数字,替换成逗号:,
。
1 | import re |
re.match()必须从字符串开头匹配!
举例:
match方法,可以帮我们匹配出这段文字中的英文字母,"CoderWanFeng,加好友,联系程序员晚枫"
1 | import re |
fullmatch见名知义:只有在给定的字符串全部匹配时,才返回正确。
举例:
匹配用户输入的电话号码是否都是数字+符合11位。
1 | import re |
查找字符串中是否有符合条件的内容。
1 | import re |
subn和sub的方法类似,区别在于:subn()方法返回一个元组,其中包含所有替换的总数以及新字符串。
看到subn方法我困惑了一下,它和sub的区别时什么?
看过源码👇才知道,区别就是那个n。
1 | import re |
这个方法返回的是一个迭代器。
1 | import re |
re.compile()是用来优化正则的,它将正则表达式转化为对象,re.search(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式,多次调用一个正则表达式就重复利用这个正则对象,可以实现更有效率的匹配。
如下列代码所示,re.compile生成pattern后,依然需要调用re的方法。
1 | import re |
如源码所说,这个方法主要是用来清楚缓存。
Python标准库中唯一调用re.purge()的位置是在测试中(特别是test_re模块的re单元测试和回归测试套件中的参考泄漏测试)。
这个方法我没找到怎么使用,欢迎大家在评论区补充。
可以将字符串中所有可能被解释为正则运算符的字符进行转译。
1 | re.escape('www.python-office.com') |
大家好,这里是Python程序员晚枫。
周末给大家汇总了👉超详细!python-office自动化办公的18个功能汇总
今天继续发布新功能:1行代码,实现PDF转图片。
速度真的很快!我还以为程序坏掉了,结果是早就运行完了。
安装很简单,在有python环境的电脑上,只需要执行下面这一行命令。
如果你之前使用过python-office这个库,也需要执行一下,可以下载到最新版本~
安装
1 | pip install -i https://mirrors.aliyun.com/pypi/simple python-office -U |
如果没有Python环境,可以试一下这个6分钟的无脑安装教程👉来,手把手带你搭建Python环境
直接上代码!
代码
1 | # 导入这个库:python-office,简写为office |
1行代码实现复杂功能,是不是很简单?
更多关于这1行代码的实现功能和背后原理,大家可以查阅:
最近在知识星球:Python读者圈,遇到读者提问:Python爬虫如何加速?
这个问题涉及到一个爬虫里,甚至是整个Python编程里都非常重要的问题:
如果同时下载1w张图片,如何有效地加速程序运行,缩短下载时间?
今天我们一起来看一下常用的解决方案。
首先我们先看一下,原来的代码里,是什么原因导致程序慢的?
下面是代码和运行结果:
1 | import office |
顺序执行看起来很完美,但是完美的背后是不是有陷阱呢?
为了更好的理解这个代码,我们先举一个例子:你面前有10台洗衣机编号是从1到10,里面转满了衣服需要你清洗,有的脏可能要强力洗洗的久,有的干净只需要速洗洗的快。
清洗以后,需要你记录下他们的清理顺序,有下列2种方案供你选择:
一个挨一个的洗完。
先启动洗衣机1号,等1号洗完了,再启动2号,依次类推。这样你记录的结果和上图一样,是完美的按顺序完成。先同时打开所有的洗衣机,哪一个洗完了就记录哪一个。
因为有的洗得快,有的洗得慢,这样你记录的结果是混乱的。哪种方式最快呢?毫无疑问是第2种,因为可以让所有的洗衣机同时工作,时间资源可以复用。
回到我们的程序,我们下载一张图片也是分为2步:请求图片资源,保存到本地。
上面的代码之所以慢,就是因为它是请求到第1张的资源,保存到本地之后,再去请求第2张的资源。看起来很完美,但其实问题很大。
如何加快速度呢?我们如果可以先请求到所有的图片资源(打开所有的洗衣机),然后再统一保存图片(哪台洗完衣服,就先记录哪台),这样是不是就会快很多呢?
下面我们按照第2种思路,在Python里的实现实现一下。
Talk is cheap,show me the code.
先上代码和运行结果。
1 | import asyncio |
主要使用的库是:
还有多进程也可以试试,但是多进程更大的优势体现在计算密集型的场景下。
爬虫获取网络请求属于I/O密集型操作,多进程的优势不大。
1 | # -*- coding:utf-8 -*- |
主要使用的库是:
希望能给你带来帮助。如果想系统的学习Python,欢迎大家扫码加入我的知识星球👉Python读者圈,我们一起学习提高~
大家好,这里是程序员晚枫。
今年下半年开始,我打算做一个知识星球,和你一起学习。
我是一名3年工作经验的Python程序员,2019年硕士毕业于华南理工大学。
也是从毕业这一年开始做编程自媒体,2个全网同名的系列账号:Python自动化办公(社区)、程序员晚枫。
截止今天(22年7月)全网粉丝20w+,获得过多个技术平台的专家博主称号。
但是:
今年下半年开始,我建立了一个知识星球:Python读者圈,来帮助你学习Python。
门票:365元/位,以下是星球能提供的服务。
知道你想学习,又不想付费。那我就给你说一下,如何白嫖这个星球?
加入以后,你可以每天更新一个自己学习总结的Python知识点,连续更新n天返现。规则如下:
如果你在学习的过程中,有一些精彩的总结或者案例实践,欢迎整理成优美的文章投稿在我的公众号:Python自动化办公社区(方向:小白案例)或者Python图书馆(方向:专业分享)。
稿件一经发布,我会付你稿费50元。如果阅读满1000元,再奖励50元。投稿要求:
我在做一个开源项目:python-office,目前该项目获得了开源中国的推荐,GitHub star 160+。
等你的python开发技术驾轻就熟了,我会指导你参与开源项目的开发。仅限加入星球的朋友:
首次提交有效PR,会获得一本Python进阶图书。具体是哪本书,我会挑一本通过我对你的了解,对你当前阶段技术进步最有帮助的。
如果连续贡献有效开源代码,我会邀请你成为星球合伙人or自媒体合伙人,我和你共享更多的行业资源~
点赞评论别人的分享,积极参与技术讨论。我会从星球里挑选星球合伙人,和你一起运营这个星球,分享其中的荣誉和收益,成为一名靠谱的斜杠青年。
好了,说完如何白嫖,再详细说一下这个星球提供的核心价值:学习Python。
从你加入星球开始,我就会详细了解关于你:
我在星球里设置了每人每月10次的提问机会,不论你在星球里提什么问题,不论问题是复杂还是简单,每次我会给你一个500字以上的回复。
我自己是Python开发,我在持续地整理几个专栏,提供给大家阅读和讨论:
另外星球里还会提供其它福利:
最后我想说一下,我个人希望在星球里看到的朋友是:不论你是业余爱好者、还是Python开发,你是在认真学习Python,我们可以通过不断的学习、讨论和实践,熟练的掌握Python这门技术。
以下这些朋友,不适合
加入星球:
伸手党。
学习是一个双向的事情,你一定要确保,你有这个学习能力。如果是完全对计算机操作、对Python开发不感兴趣,是想来让我替你写代码的。我实在是没时间接这种私活。善良比聪明重要。
这句话是我在另一个博主那里看到的。我本身就是个Python开发,不是很喜欢去猜别人的套路。如果你是带着学习Python以外的目的来的,要么你就直接告诉我,要么你就别加入。最后我要说清楚,我只是个普通的Python程序员,在我们这行里也绝对不是技术最好的,但应该会比小白,或者刚入行的新人接触的多一些。
另外我自己也在学习Python进阶的技术,我只能提供力所能及的技术分享和支持。
如果我是最顶级的Python程序员,我的星球也不是这个价格了,你说是吧?
另外,这个星球永远都不会做优惠活动,例如:提供60元门票优惠券什么的。如果你觉得我的定价高了,或者我的星球不够好,我再继续努力学习提高就是了,365元提供1年的服务,是我目前的底线。未来我的技术越来越好、星球服务越来越完善了,我会继续涨价。
我的微信:CoderWanFeng,希望接下来和你一起进步~
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true