实用的 Python 内置小工具

一. 下载服务器

Python 内置了一个下载服务器,只需要进去目标目录,执行下面的启动命令即可:

Python2:

mia@ubuntu:~/Desktop$ ls
a.txt  b.txt  c
mia@ubuntu:~/Desktop$ python2 -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

SimpleHTTPServer 启动之后, 局域网内的任意一台电脑通过访问 http://192.168.6.126:8000/ 地址来下载文件:

SimpleHTTPServer 启动的下载服务器

Python3:
Python3 对系统库进行了重新整理,因此启动方式也会有所不同。Python3 执行以下命令,也会在当前目录下启动一个文件下载服务器,默认打开 8000 端口,也可以自行指定端口:

mia@ubuntu:~$ python3 -m http.server 8001
Serving HTTP on 0.0.0.0 port 8001 (http://0.0.0.0:8001/) ...
http.server 启动的下载服务器

注:上述的 Python 语句本质上是启动了一个 Python 内置的 Web 服务器。如果当前目录下存在 index.html 文件,则会显示一个 html 页面。反之,则显示当前目录下的文件列表,也就是我们上面看到的下载服务器。

二. JSON 格式化工具

JSON 是一种非常流行的数据交换格式,即易于人类阅读和编写,同时也易于机器解析和生成。在日常工作中,我们经常需要将 JSON 字符串转换为 JSON 对象,普遍的一种做法是,打开浏览器搜索 “在线JSON格式化工具”。

除此之外,在命令行中,我们可以借助 python -m json.tool 解析 JSON 字符串。下面的 JSON字符串直接阅读会非常困难:

mia@ubuntu:~/Desktop$ echo '{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一个技能","book":false},{"id":50111086,"name":"环境搭建和工具使用","book":false},{"id":49600701,"name":"数据分析 > 常用库","book":false}],"notebooks_page":1,"notebooks_total_pages":1}'
{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一个技能","book":false},{"id":50111086,"name":"环境搭建和工具使用","book":false},{"id":49600701,"name":"数据分析 > 常用库","book":false}],"notebooks_page":1,"notebooks_total_pages":1}

可以使用管道操作符,作为输入传递给 json.tool

mia@ubuntu:~/Desktop$ echo '{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一个技能","book":false},{"id":50111086,"name":"环境搭建和工具使用","book":false},{"id":49600701,"name":"数据分析 > 常用库","book":false}],"notebooks_page":1,"notebooks_total_pages":1}' | python -m json.tool
{
    "manageable_collections": [],
    "manageable_collections_page": 1,
    "manageable_collections_total_pages": 0,
    "notebooks": [
        {
            "book": false,
            "id": 50215835,
            "name": "Python > \u6bcf\u65e5get\u4e00\u4e2a\u6280\u80fd"
        },
        {
            "book": false,
            "id": 50111086,
            "name": "\u73af\u5883\u642d\u5efa\u548c\u5de5\u5177\u4f7f\u7528"
        },
        {
            "book": false,
            "id": 49600701,
            "name": "\u6570\u636e\u5206\u6790 > \u5e38\u7528\u5e93"
        }
    ],
    "notebooks_page": 1,
    "notebooks_total_pages": 1,
    "own_collections": [],
    "own_collections_page": 1,
    "own_collections_total_pages": 0
}

三. 检验第三方库是否正确安装

安装完一个第三方库,我们都知道在 python shell 中直接 import 一下,观察是否有报错,即可检验第三方库是否正确安装:

mia@ubuntu:~/Desktop$ pip2 list --format=columns | grep -iE flask
Flask                              1.1.4
mia@ubuntu:~/Desktop$ python
Python 2.7.17 (default, Feb 27 2021, 15:10:58) 
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> 

但如果是想在脚本中实现上述验证操作,则需要借助 Python 解释器的 -c 参数来执行 import 语句:

mia@ubuntu:~/Desktop$ python2 -c "import flask"
mia@ubuntu:~/Desktop$ pip2 list --format=columns | grep -iE numpy
mia@ubuntu:~/Desktop$ python2 -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy

使用 python -c "import xxx" ,不但比交互式的验证更加高效,更重要的是,能够写入脚本,适用于更多的场景。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容