学习 Python Linux系统管理与自动化运维 总结一

1. 1秒钟启动一个下载服务器

在要访问文件的目录下执行:python3 -m http.server

在网页上访问:http://ip:8000/

就可以下载该目录下的文件(windows中也可以用)

2. python 一行试解析json

echo '{"job": "developer", "name": "lmx", "sex": "male"}' | python -m json.tool

cat 1.txt | python -m json.tool (1.txt中是json类型的数据)

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

如果是单个服务器可以直接进pyhon编辑器中用import 库名 来检查

如果是多个远程服务器时:python -c "import 库名“ 

4.pip子命令


4.1 加速pip安装的技巧

用pip安装库时下载慢是可以用第三方的源。

通过pip命令的-i选项指定镜像源即可。如下所示:

  1. pip install -i https://pypi.douban.com/simple/ flask 

每次都要指定镜像源的地址比较麻烦,我们也可以修改pip的配置文件,将镜像源写入配置文件中。

对于Linux系统来说,需要创建~/.pip/pip.conf文件,然后在文件中保存如下内容:

  1. $ cat pip.conf  
  2. [global]  
  3. index-url = https://pypi.douban.com/simple/ 

5. python调试器

5.1 标准库的pdb

    pdb是Python自带的一个库,为Python程序提供了一种交互式的源代码调试功能,包含了现代调试器应有的功能,包括设置断点、单步调试、查看源码、查看程序堆栈等。如果读者具有C或C++程序语言背景,则一定听说过gdb。gdb是由GNU开源组织发布的一个命令行程序调试工具。如果读者之前使用过gdb,那么几乎不用学习就可以直接使用pdb。pdb和gdb保持了一样的用法,这样可以降低工程师的学习负担和Python调试的难度。

部分pdb调试命令:


调用pdb命令:python -m pdb test.py

6.PEP 8 编码格式

地址:https://www.python.org/dev/peps/pep-0008/

首先导入标准库模块,其次导入第三方模块,最后导入当前应用程序,各个分组之间以空行分隔。

无论何时,都应该避免使用通配符导入( from xx import *)。通配符导入会使名称空间里存在的名称变得不清晰,迷惑读者和自动化工具。


7.使用autopep8将代码格式化

autopep8是一个开源的命令行工具,它能够将Python代码自动格式化为PEP8风格。

pip install autopep8

autopep8命令:

检查代码格式:pycodestyle hello.py

查看代码正确格式:autopep8 text.py

修改代码正确格式:autopep8 --in-place text.py


8. 使用getpass库读取密码

getpass是一个非常简单的Python标准库,主要包含getuser函数和getpass函数。前者用来从环境变量中获取用户名,后者用来等待用户输入密码。getpass函数与input函数的区别在于,它不会将我们输入的密码显示在命令行中,从而避免我们输入的密码被他人看到。如下所示:

  1. from __future__ import print_function  
  2. import getpass  
  3.  
  4. user = getpass.getuser()  
  5. passwd = getpass.getpass('your password: ')  
  6. print(user, passwd) 

9.使用ConfigParse解析配置文件

import ConfigParser (py.2)

import configparser (py.3)

python3中这个库改成小写了。

cf = configparser.ConfigParser(allow_no_value=True) --初始化(注意大小写)

cf.read('my.cnf') --读取配置文件

cf.sections() --返回一个包含所有章节的列表

cf.options('client') --返回一个包含章节下所有选项的列表

cf.get('client','host')) --获取选项的值


判断配置项相关的方法:

sections:返回一个包含所有章节的列表;

has_section:判断章节是否存在;

items:以元组的形式返回所有选项;

options:返回一个包含章节下所有选项的列表;

has_option:判断某个选项是否存在;

get、getboolean、getinit、getfloat:获取选项的值。


修改配置项相关的方法:

remove_section:删除一个章节;

add_section:添加一个章节;

remote_option:删除一个选项;

set:添加一个选项;

write将ConfigParser对象中的数据保存到文件中。


10. prompt_toolkit

prompt_toolkit的特性包括:

1)语法高亮;

2)支持多行编辑;

3)支持代码补全;

4)支持自动提示;

5)可以使用鼠标移动光标;

6)支持Emacs与Vi风格的快捷键;

7)支持查询历史;

8)对Unicode支持友好;

9)使用Python语言开发,跨平台。

可以用退格,左右键。

简单的运用:

  1. from prompt_toolkit import prompt  
  2.  
  3. while True:  
  4.     user_input = prompt('>')  
  5.     print(user_input)


有历史输入记录:





猜你喜欢

转载自blog.csdn.net/optimistic001/article/details/80484537