Python 只用一行代码,可以实现哪些事儿?
只用一行 Python 代码或命令,就能做事儿是真的吗?python有这么强大吗?我们来试试,看看python能不能用一行代码来做事儿。
目前操作的系统是用windows进行测试的,是windows还是linux,命令都是一样的
一行 Python 命令实现
1、http 服务器:
python -m http.server
当我们执行完成python命名,显现信息如下:
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
我们发现http服务已经启动起来了,端口号为8000,在浏览器中输入127.0.0.1:8000,我们发现html网页打开了。
2、FTP 服务器
使用 pyftpdlib 来直接实现一个 FTP 服务器进行文件传输:
没有pyftpdlib这个库的时候需要安装,命令如下:
pip install pyftpdlib
接下来我们准备启动FTP服务器,命令如下:
python -m pyftpdlib
提示信息如下:
[I 2021-01-20 18:24:17] concurrency model: async
[I 2021-01-20 18:24:17] masquerade (NAT) address: None
[I 2021-01-20 18:24:17] passive ports: None
[I 2021-01-20 18:24:17] >>> starting FTP server on 0.0.0.0:2121, pid=6656 <<<
我们发现ftp的服务器启动起来了端口号为2121
在浏览器中输入ftp://127.0.0.1:2121 我们发打开了一个html网页,只是没有进行css美化,但是可以操作文件了,例如下载文件等
3、格式化 Json
有时候我们的Json 数据排版得很乱,如何格式化Json数据,使得数据看上去清晰而美观呢?
可以使用 json.tool 来格式化 Json,测试文件名为test.json,内容数据如下:
{"menuid": 1, "menuname": "java"}
现在Json内容数据在一行显示
在linux系统中执行命令如下:(cat命令只有Linux中才有)
cat test.json | python -m json.tool
在windows系统中执行命令如下:(windows没有cat命令用type命令代替)
type test.json | python -m json.tool
显示结果如下:
{
"menuid": 1,
"menuname": "java"
}
4、python -c
使用这个 -c 参数可以直接在终端中使用 Python 简单的代码:(第一行是命令,第二行显示的是结果)
python -c "a= [i for i in range(6)]; print(a)"
[0, 1, 2, 3, 4, 5]
5、分析性能
可以使用 cProfile 来分析你的 py 性能:
python -m cProfile .\manage.py
显示的部分信息如下:
1 0.000 0.000 0.000 0.000 __init__.py:1140(__init__)
3 0.000 0.000 0.000 0.000 __init__.py:1146(stream)