Loading...

Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

Python2年前 (2022)更新 safedragon
89 0

Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

2.6 如何快速搭建 FTP 服务器

搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享。但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方。比如你想快速共享Linux系统的某个目录给整个项目团队,还想在一分钟内做到,怎么办?很简单,使用Python中的SimpleHTTPServer。
SimpleHTTPServer是Python 2自带的一个模块,是Python的Web服务器。它在Python 3已经合并到http.server模块中。具体例子如下,如不指定端口,则默认是8000端口。

# python2
python -m SimpleHTTPServer 8888
# python3
python3 -m http.server 8888
Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

SimpleHTTPServer有一个特性,如果待共享的目录下有index.html,那么index.html文件会被视为默认主页;如果不存在index.html文件,那么就会显示整个目录列表。

2.7 快速构建 HTML 帮助文档

当你不知道一个内置模块如何使用时,会怎么做呢?
百度?Google?
其实完全没必要,这里教你一个离线学习 Python 模块的法。
是的,你没有听错。
就算没有外网网络也能学习 Python 模块.
你只要在命令行下输入 python -m pydoc -p xxx 命令即可开启一个 HTTP 服务,xxx 为端口,你可以自己指定。

$ python -m pydoc -p 5200
pydoc server ready at http://localhost:5200/

帮助文档的效果如下

Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

2.8 最正确且优雅的装包方法

当你使用 pip 来安装第三方的模块时,通常会使用这样的命令

$ pip install requests

此时如果你的环境中有 Python2 也有 Python 3,那你使用这条命令安装的包是安装 Python2呢?还是安装到 Python 3 呢?
就算你的环境上没有安装 Python2,那也有可能存在着多个版本的 Python 吧?比如安装了Python3.8,也安装了Python3.9,那你安装包时就会很困惑,我到底把包安装在了哪里?
但若你使用这样的命令去安装,就没有了这样的烦恼了

# 在 python2 中安装
$ python -m pip install requests
# 在 python3 中安装
$ python3 -m pip install requests
# 在 python3.8 中安装
$ python3.8 -m pip install requests
# 在 python3.9 中安装
$ python3.9 -m pip install requests

2.9 往 Python Shell 中传入参数

往一个 Python 脚本传入参数,是一件非常简单的事情。
比如这样:

$ python demo.py arg1 arg2

我在验证一些简单的 Python 代码时,喜欢使用 Python Shell 。
那有没有办法在使用 Python Shell 时,向上面传递参数一样,传入参数呢?
经过我的摸索,终于找到了方法,具体方法如下:

Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

2.10 让脚本报错后立即进入调试模式

当你在使用 python xxx.py 这样的方法,执行 Python 脚本时,若因为代码 bug 导致异常未捕获,那整个程序便会终止退出。
这个时候,我们通常会去排查是什么原因导致的程序崩溃。
大家都知道,排查问题的思路,第一步肯定是去查看日志,若这个 bug 隐藏的比较深,只有在特定场景下才会现身,那么还需要开发者,复现这个 bug,方能优化代码。
复现有时候很难,有时候虽然简单,但是要伪造各种数据,相当麻烦。
如果有一种方法能在程序崩溃后,立马进入调试模式该有多好啊?

明哥都这么问了,那肯定是带着解决方案来的。
只要你在执行脚本行,加上 -i 参数,即可在脚本执行完毕后进入 Python Shell 模式,方便你进行调试。
具体演示如下:

Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

需要注意的是:脚本执行完毕,有两种情况:
1. 正常退出
2. 异常退出
这两种都会进入 Python Shell,如果脚本并无异常,最终也会进入 Python Shell 模式,需要你手动退出Python黑魔法手册 2.0 文档第二章魔法命令行【6-10】

© 版权声明

相关文章

暂无评论

暂无评论...