创新路
我们一直在努力

Python学习笔记(27)

王宇恒阅读(16)评论(0)

生成式和生成器

可以使用列表的生成式语法来创建列表

image.png

生成器占用内存和列表对比

生成器不会占用内存空间,每次调用时都会进行计算,会花费额外的时间

image.png

代码引发的简短思考?

jwenshan阅读(41)评论(0)

经常回过头去看自己曾经写过的程序,有时可能从中获得新的启发,所谓温故而知新意。或许都有一点怀旧的情节,数年前的代码偶有翻出来品品。突然发现不同时期都用不同的思维角度去考虑和解决问题从而达到相同效果,但细细品味,内涵中却有不同。经历岁月的洗礼,或许几年前留下的那一串是沧桑历史,但有它更能激发我们的思维,加速今天的我们思维发散,仿佛忽如一夜春风袭来,使我们浑身充满了电能,懂得了从代码中获得取舍,从而能很好的另劈蹊径,进入新一轮的征程,进一步升华,如此循环。过程中体现的却是技术和思想的革新,寥寥代码,代表的却是思维的宽度、眼界的广度和内涵的深度。我们经历了过往,走到了如今,于是我们又开始站在了新的起点和高度继续前进……

                               2020.3.25

图片.png

图片.png

优化后代码行对比:

图片.png

图片.png

图片.png

Python学习笔记(26)

王宇恒阅读(31)评论(0)

当前工作目录

首先导入os模块,使用getcwd方法查看自己得当前工作目录,并且可以用os.chdir改变工作目录

image.png

用 os.makedirs()创建新文件夹

os.makedirs()参数可以是文件名,将在当前目录创建,也可以是一个绝对路径,并且执行时,所有得中间文件夹将一起被创建

image.png

处理绝对路径和相对路径

os.path 模块提供了一些函数,返回一个相对路径的绝对路径,以及检查给定的路径是否为绝对路径。 

•  调用 os.path.abspath(path)将返回参数的绝对路径的字符串。这是将相对路径转换为绝对路径的简便方法。 

•  调用 os.path.isabs(path),如果参数是一个绝对路径,就返回 True,如果参数是一个相对路径,就返回 False。 

image.png

Linux之MD5和GPG

李鑫宇阅读(21)评论(0)

一、MD5

    1.什么是MD5:是信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致(摘抄至百度百科)

    2.MD5应用:常用于下载文件后查看MD5看文件是否一致

        cp lxy1.txt  lxy2.txt

        md5 lxy1.txt                  //文件内容一样,则下列MD5一样    

            d622eaa26141872b942438b85844cf2c  lxy1.txt

            d622eaa26141872b942438b85844cf2c  lxy2.txt

        echo "aaaa" >> lxy1.txt

        md5 lxy1.txt                //对文件改动,再看lxy1,MD5不一样了                 

            4aad64d2095dcc7580a9e9b8e4212576 lxy1.txt

二、GPG对称加密

    1.什么是GPG对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,GPG呢就是一种对称加密中的加密方式,仅此而已

    2.GPG对称加密应用

        yum -y install gnupg2            //安装gnupg2

        加密:gpg -c lxy1.txt   

            //对称加密,根据提示输入两次口令生成加密文件,后缀为 .gpg

        cat lxy1.txt.gpg                    //查看为乱码,是加密后的数据

        解密:gpg -d lxy1.txt.gpg > lxy1.txt  

            //解密后保存,根据提示输入密码(如果已经解密过,会记录密码再次解密不用输密码)

        cat lxy1.txt                      //查看解密后的文件

 

三、GPG非对称加密

    1.什么是GPG非对称加密:非对称加密算法是一种密钥的保密方法,非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。(摘抄至百度百科)

    2.加密

      (1)创建公钥

        gpg –gen-key    

            //接收方创建自己的公钥、私钥,按提示操作

        gpg –list-keys    

            //查看公钥,公钥、私钥信息分别保存在~/.gnupg/pubring.gpg和secring.gpg文件内

        gpg -a –export lxy1 > /tmp/lxy1.pub   

            //–export导出密钥,后面跟姓名  -a密钥存储为ASCII格式

        scp /tmp/lxy1.pub 192.168.1.2:/tmp/     //将密钥传给另一方

      (2)导入公钥

        gpg –import /tmp/lxy1.pub    

            //–import导入发送方的公钥信息,以便在加密文件时指定对应的公钥

        echo "XXXXXXXXXXX" > test.txt

        gpg  -e  -r  lxy1  test.txt     

            //使用此密钥加密文件,-e 加密 -r 指定密钥后面跟密钥创建时的用户名,

        scp test.txt.gpg  192.168.1.3:/root    //加密的数据传给回

      (3)解密文件

        gpg -d test.txt.gpg > test.txt     //私钥解密文件

        cat test.txt                      //获得解密后的文件内容为xxxxx…

Python学习笔记(25)

王宇恒阅读(25)评论(0)

findall()方法

除了search方法外, Regex对象也有一个findall()方法。 search()将返回一个Match对象,包含被查找字符串中的“第一次”匹配的文本,而 findall()方法将返回一组字符串,包含被查找字符串中的所有匹配。

image.png

字符分类

字符分类对于缩短正则表达式很有用。

\d         0 到 9 的任何数字 

\D         除 0 到 9 的数字以外的任何字符 

\w        任何字母、数字或下划线字符(可以认为是匹配“单词”字符) 

\W        除字母、数字和下划线以外的任何字符 

\s          空格、制表符或换行符(可以认为是匹配“空白”字符) 

\S          除空格、制表符和换行符以外的任何字符 

 建立自己的字符分类

例如,字符分类[a-zA-Z0-9]将匹配所有小写字母、大写字母和数字。

image.png

加上[ ]符号之后里面的规则就不需要加\

python 爬虫之数据格式化

略懂阅读(23)评论(0)

今天对上次的Beautiful Soup抓取到的数据进行格式化数据:

需要用到for …in  遍历函数和 get()方法

实例:

image.png

输出:

image.png

遍历函数:for …in 可以遍历 字符串、列表,元组,字典,循环输出提取信息

1584516527127442.png

使用get()方法:查找指定的值,书写格式:str.get('元素')

抓取链接:item.get('href') 获取href=的值

抓取标题:item.get('title') 获取title=的值

抓取标题还可以使用另一个函数item.get_text() 抓取文本类容,不抓取html标签元素

Python学习笔记(24)

王宇恒阅读(40)评论(0)

用正则表达式查找文本模式

正则表达式,简称为 regex,是文本模式的描述方法。例如,\d 是一个正则表达式,表示一位数字字符,即任何一位 0 到 9 的数字。

1.创建正则表达式对象 

Python 中所有正则表达式的函数都在 re 模块中。在交互式环境中输入import re代码,导入该模块。

image.png

2.匹配 Regex 对象

image.png

还可以用外部输入代替查找对象,达到帮助工作的目的

image.png

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机