[‘primes.py’, ‘random.py’, ‘quote.py’]
---
### 3、命令行参数
通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。
sys.argv
可以用sys.argv获取当前正在执行的命令行参数的参数列表(list)。
**变量解释**
* sys.argv[0]当前程序名
* sys.argv[1]第一个参数
* sys.argv[2]第二个参数
len(sys.argv)-1 参数个数(减去文件名)
例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:
import sys
print(sys.argv)
[‘demo.py’, ‘one’, ‘two’, ‘three’]
---
### 4、字符串正则匹配
re模块为高级字符串处理提供了正则表达式工具。可以说是爬虫必备,对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:如果只需要简单的功能,应该首先考虑字符串方法,因为它们非常简单,易于阅读和调试:
‘tea for too’.replace(‘too’, ‘two’)
‘tea for two’
**re.match函数**
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
**函数语法**:
re.match(pattern, string, flags=0)
函数参数说明:
| 参数 | 描述 |
| --- | --- |
| pattern | 匹配的正则表达式 |
| string | 要匹配的字符串。 |
| flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。 |
匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
| 匹配对象方法 | 描述 |
| --- | --- |
| group(num=0) | 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。 |
| groups() | 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。 |
---
### 5、数学计算
math模块为浮点运算提供了对底层C函数库的访问:
import math
math.cos(math.pi / 4)
0.70710678118654757
math.log(1024, 2)
10.0
在实际工作中,math标准库往往无法满足需求,我还需要扩展库:NumPy
NumPy(Numerical Python) 支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
* NumPy 官网 [NumPy](https://bbs.csdn.net/topics/618545628)
---
###
###
### 6、操作系统接口
os模块提供了不少与操作系统相关联的函数。
import os
os.getcwd() # 返回当前的工作目录
‘C:\Python34’
os.chdir(‘/server/accesslogs’) # 修改当前的工作目录
os.system(‘mkdir today’) # 执行系统命令 mkdir
0
建议使用 "import os" 风格而非 "from os import \*"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。
**os常用命令**
| | | |
| --- | --- | --- |
| 序号 | 方法 | 功能 |
| 1 | os.access(path, mode) | 检验权限模式 |
| 2 | os.chdir(path) | 改变当前工作目录 |
| 3 | os.chflags(path, flags) | 设置路径的标记为数字标记。 |
| 4 | os.chmod(path, mode) | 更改权限 |
| 5 | os.chown(path, uid, gid) | 更改文件所有者 |
| 6 | os.chroot(path) | 改变当前进程的根目录 |
| 7 | os.close(fd) | 关闭文件描述符 fd |
| 8 | os.closerange(fd\_low, fd\_high) | 关闭所有文件描述符,从 fd\_low (包含) 到 fd\_high (不包含), 错误会忽略 |
| 9 | os.dup(fd) | 复制文件描述符 fd |
| 10 | os.dup2(fd, fd2) | 将一个文件描述符 fd 复制到另一个 fd2 |
---
###
### 7、日期和时间
datetime模块为日期和时间处理同时提供了简单和复杂的方法。
支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。
该模块还支持时区处理:
dates are easily constructed and formatted
from datetime import date
now = date.today()
now
datetime.date(2003, 12, 2)
now.strftime(“%m-%d-%y. %d %b %Y is a %A on the %d day of %B.”)
‘12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.’
时间的三种存在方式:时间对象,时间字符串,时间戳。
(1)字符串转datetime:
string = ‘2014-01-08 11:59:58’
time1 = datetime.datetime.strptime(string,‘%Y-%m-%d %H:%M:%S’)
print time1
2014-01-08 11:59:58
(2)datetime转字符串:
time1_str = datetime.datetime.strftime(time1,‘%Y-%m-%d %H:%M:%S’)
time1_str
‘2014-01-08 11:59:58’
(3)时间戳转时间对象:
time1 = time.localtime()
time1_str = datetime.datetime.fromtimestamp(time1)
---
### 8、数据压缩
以下模块直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。
import zlib
s = b’witch which has which witches wrist watch’
len(s)
41
t = zlib.compress(s)
len(t)
37
zlib.decompress(t)
b’witch which has which witches wrist watch’
zlib.crc32(s)
226805979
![img](https://img-blog.csdnimg.cn/img_convert/f77a57456f644d5cf543b070f7dd53cd.png)
![img](https://img-blog.csdnimg.cn/img_convert/20c2d50ca429089e86ec7d3f9a45451f.png)
![img](https://img-blog.csdnimg.cn/img_convert/cf0536cfb00cedd9f29276dd5f43ac13.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
tVjB-1714220938829)]
[外链图片转存中...(img-Wfkps4sd-1714220938829)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**