Python标准库中的隐藏神器
文章目录
前言
Python安装之后,其标准库中有的模块,不一定要通过代码来引用,还可以直接在命令行中使用的。
在命令行中直接使用Python
标准库的模块,最大的好处就是就是不用写代码,就能使用其中的功能,
当临时需要一些某些功能的时候,用这种方式会快捷,方便很多。
1. 命令行中使用模块
命令行中使用python
标准库的模块,一般格式如下:
python -m <mod-name> <options>
其中,mod-name
是模块的名称;options
是模块的参数。
本篇列举的是我自己在命令行中常用的一些模块,并不是所有可在命令行中可用的模块。
其它好用的模块,欢迎大家推荐。
2. http.server:静态文件服务
http.server
模块的参数主要有:
python -m http.server -h
usage: server.py [-h] [--cgi] [-b ADDRESS] [-d DIRECTORY] [-p VERSION] [port]
positional arguments:
port bind to this port (default: 8000)
options:
-h, --help show this help message and exit
--cgi run as CGI server
-b ADDRESS, --bind ADDRESS
bind to this address (default: all interfaces)
-d DIRECTORY, --directory DIRECTORY
serve this directory (default: current directory)
-p VERSION, --protocol VERSION
conform to this HTTP version (default: HTTP/1.0)
主要的参数:
- -b:如果需要让局域网的其他机器访问,可以设置
-b 0.0.0.0
- -d:设置静态文件服务的根目录
创建一个目录作为静态文件服务的根目录,并放入一个index.html
文件。
html文件内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>http.server</title>
</head>
<body>
<h1>hello</h1>
<br />
<h1>python -m http.server</h1>
</body>
</html>
启动服务,效果如下:
python -m http.server -d ./sample-site
3. gzip:压缩/解压缩
gzip
模块可用来压缩,解压缩文件。
python -m gzip -h
usage: gzip.py [-h] [--fast | --best | -d] [file ...]
A simple command line interface for the gzip module: act like gzip, but do not delete the input file.
positional arguments:
file
options:
-h, --help show this help message and exit
--fast compress faster
--best compress better
-d, --decompress act like gunzip instead of gzip
压缩文件:
python -m gzip test.txt
# 会生成一个 test.txt.gz 文件
解压文件(-d 参数用来解压):
python -m gzip -d test.txt.gz
# 会解压出 test.txt 文件
4. base64:编码解码文件
当我们临时要用base64
来编码或解码字符串的时候,可以用这个模块。
python -m base64 -h
usage: D:\miniconda3\envs\databook\Lib\base64.py [-h|-d|-e|-u|-t] [file|-]
-h: print this help message and exit
-d, -u: decode
-e: encode (default)
-t: encode and decode string 'Aladdin:open sesame'
用base64
编码一个字符串:
echo "abcdefg" | python -m base64
YWJjZGVmZw0K
解码base64字符串:用上面编码后的base64
来还原。
echo "YWJjZGVmZw0K" | python -m base64 -d
abcdefg
5. json.tool:更好的显示json结构
这个工具对于经常使用命令行的人来说,非常有用。
从命令行访问某些API接口的时候,返回的json数据往往是压缩在一行,很难阅读。
json.tool
模块的参数很多,但是一般大部分情况下是不需要设置的,
使用参数的默认值就可以了:
python -m json.tool -h
usage: python -m json.tool [-h] [--sort-keys] [--no-ensure-ascii] [--json-lines]
[--indent INDENT | --tab | --no-indent | --compact]
[infile] [outfile]
A simple command line interface for json module to validate and pretty-print JSON objects.
positional arguments:
infile a JSON file to be validated or pretty-printed
outfile write the output of infile to outfile
options:
-h, --help show this help message and exit
--sort-keys sort the output of dictionaries alphabetically by key
--no-ensure-ascii disable escaping of non-ASCII characters
--json-lines parse input using the JSON Lines format. Use with --no-indent or --compact to produce valid
JSON Lines output.
--indent INDENT separate items with newlines and use this number of spaces for indentation
--tab separate items with newlines and use tabs for indentation
--no-indent separate items with spaces rather than newlines
--compact suppress all whitespace separation (most compact)
比如下面的json
字符串:
echo '{"code":0,"message":"success""data":[{"name":"harry"},{"name":"joe"}]}' | python -m json.tool
{
"code": 0,
"message": "success",
"data": [
{
"name": "harry"
},
{
"name": "joe"
}
]
}
6. calendar:日历信息
calendar
这个模块相当于是个命令行下的日历。
可以指定某一年的日历(默认是当前年的):
python -m calendar 2022
也可以指定某一年某个月的日历:
python -m calendar 2023 10
这个命令还可以把日历转换成HTML格式导出,具体可以看它的help信息。
7. ast:显示代码的抽象语法数
这个ast
模块就强大了,它可以将原始的python
代码转换为抽象语法树。
基于抽象语法树,可以做一些底层的代码分析,代码生成,甚至转换成其它语言的代码等等。
ast
模块的参数不多,一般用默认参数即可:
python -m ast -h
usage: python -m ast [-h] [-m {exec,single,eval,func_type}] [--no-type-comments] [-a] [-i INDENT] [infile]
positional arguments:
infile the file to parse; defaults to stdin
options:
-h, --help show this help message and exit
-m {exec,single,eval,func_type}, --mode {exec,single,eval,func_type}
specify what kind of code must be parsed
--no-type-comments don't add information about type comments
-a, --include-attributes
include attributes such as line numbers and column offsets
-i INDENT, --indent INDENT
indentation of nodes (number of spaces)
下面构造一个python
代码文件(main.py
),内容比较简单,就是一个累加的功能。
# -*- coding: utf-8 -*-
def sum(start, end):
sum = 0
for i in range(start, end + 1):
sum += i
print("1+2+...+10 = {}".format(sum))
if __name__ == "__main__":
sum(1, 10)
转换之后的抽象语法树为:
python -m ast main.py
Module(
body=[
FunctionDef(
name='sum',
args=arguments(
posonlyargs=[],
args=[
arg(arg='start'),
arg(arg='end')],
...省略...
body=[
Assign(
targets=[
Name(id='sum', ctx=Store())],
value=Constant(value=0)),
For(
target=Name(id='i', ctx=Store()),
...省略...
orelse=[]),
Expr(
value=Call(
...省略...
keywords=[]))],
decorator_list=[]),
If(
test=Compare(
...省略...
orelse=[])],
type_ignores=[])
转换后的内容比较长,中间我省略一些内容。
对完整的内容感兴趣,可以自己试试转换一个python
代码文件。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,希望提供给想学习 Python 的小伙伴们一点帮助!
保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python基础学习视频
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
三、精品Python学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
六、Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!