第 49 期:抓住机会,努力成长

@Author : Lewis Tian (taseikyo@gmail.com)

@Link : github.com/taseikyo

@Range : 2021-10-03 - 2021-10-09

Weekly #49

readme | previous | next

本文总字数 968 个,阅读时长约:1 分 53 秒,统计数据来自:算筹字数统计。

*Photo by Jocelyn Morales on Unsplash

Table of Contents

  • tip

    • Linux 下最好用的解压缩软件 unar

    • Python 使用 grequests 并发发送请求

  • share

    • 抓住机会,努力成长

algorithm 🔝

review 🔝

tip 🔝

1、安装

$ sudo apt install unar

2、常用操作

  • 查看压缩包内有哪些文件:lsar

lsar.png

  • 解压:unar

unar.png

$ unar x.tar.gz
$ unar x.rar
$ unar x.zip
$ unar x.ISO
// ...

3、常用参数

  • 指定解压缩后文件的保存位置:-o

unar-o.png

对加密压缩包指定解压缩密码:-p

$ unar -p 123 robin.tar.xz
  • 对指定解压缩时使用的编码:-e

$ unar -e GBK robin.tar.xz

4、解决 linux 系统下解压缩中文件时出现乱码的方法

  • unar 命令正常情况下可以自适应编码解压缩文件,若出现中文乱码可通过指定解压缩编码方法解决

  • 使用 lsar 命令查看压缩包内文件,如果出现乱码情况,则指定编码再次查看

  • 使用 lsar -e GB18030 ,若能正常显示中文名称,则指定使用此编码解压缩文件即可

今天看 代码 学到这个库,于是搜了下,果然是好东西

requests 发送请求是串行的,而 grequests 是 K 神基于 gevent+requests 编写的一个并发发送请求的库

  • https://github.com/spyoungtech/grequests

1、简单使用

import grequests

req_list = [   # 请求列表
    grequests.get('http://httpbin.org/get?a=1&b=2'),
    grequests.post('http://httpbin.org/post', data={'a':1,'b':2}),
    grequests.put('http://httpbin.org/post', json={'a': 1, 'b': 2}),
]

res_list = grequests.map(req_list)    # 并行发送,等最后一个运行完后返回
print(res_list[0].text)  # 打印第一个请求的响应文本

grequests 支持 get、post、put、delete 等 requests 支持的 HTTP 请求方法,使用参数和 requests 一致,发送请求非常简单。

通过遍历 res_list 可以得到所有请求的返回结果。

2、异常处理

import grequests

def err_handler(request, exception):
    print("请求出错")

req_list = [
    grequests.get('http://httpbin.org/delay/1', timeout=0.001),   # 超时异常
    grequests.get('http://fakedomain/'),   # 该域名不存在
    grequests.get('http://httpbin.org/status/500')    #  正常返回500的请求
]

res_list = grequests.map(reqs, exception_handler=err_handler)
print(res_list)
请求出错
请求出错
[None, None, <Response [500]>]

share 🔝

1. 抓住机会,努力成长

踏出舒适圈,把握任何成长的机会

学会沟通,从前辈那里学习经验和坑;

学会沉淀,将学到的东西及时整理,人的记忆力是有限的;

学会分享,将学到的知识给别人分享,在给别人解答的同时可能会得到不一样的理解;

readme | previous | next

最后更新于

这有帮助吗?