首页 > 编程语言 >python模块导入和帮助

python模块导入和帮助

时间:2023-03-27 09:13:51浏览次数:86  
标签:help python nmap 导入 模块 pip root

目录

模块导入和帮助

下载和导入

python‘s standard library is amazing

python模块

模块就是保存在一个单独文件当中的一段代码。

函数是一个积木,多个积木组成起来就是一个模块,模块在python当中的具体体现其实就是一个文件而已,我们可以导入模块,进而使用模块当中的函数。

python当中内置了一些模块,但是这些模块需要导入才能使用,为什么python不能直接替我们进行导入,我们直接使用呢?其实这是为了让python不臃肿,这种方式被很多程序借鉴,比如obsidian这个软件,默认安装后只有基本的功能,你想使用一些高级功能,需要自定义安装或打开。

最著名一个库网站:pypi.org,如下所示:

image-20230327083612543

Welcome to Paramiko! — Paramiko documentation

# 查看安装了哪些库文件
C:\Users\zhanghe>pip list
Package      Version
------------ --------
bcrypt       4.0.1
cffi         1.15.1
cryptography 39.0.1
nmap         0.0.1
paramiko     3.0.0
pip          22.3.1
pycparser    2.21
pygame       2.1.3
PyNaCl       1.5.0
setuptools   65.5.0
you-get      0.4.1650

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: python.exe -m pip install --upgrade pip

# 通过pip安装模块 (pip自己了是一个模块)
# 换源,国外的有点慢,可以用一下国内的,比如阿里的
方法自己去阿里镜像源上看
# 安装
apt update ; apt -y install python-pip3

# pip升级
pip3 install --upgrade pip
Downloading pip-23.0.1-py3-none-any.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 691.0 kB/s eta 0:00:00

# 列出pip正在使用的配置文件
pip config list -v
root@DESKTOP-RAG9L0F:~# pip config list -v
For variant 'global', will try loading '/etc/xdg/pip/pip.conf'
For variant 'global', will try loading '/etc/pip.conf'
For variant 'user', will try loading '/root/.pip/pip.conf'
For variant 'user', will try loading '/root/.config/pip/pip.conf'
For variant 'site', will try loading '/usr/pip.conf'

# 查看已经安装好的模块
python3 -m pip list  # 或 pip3 list

# 安装和升级SNMP模块
pip3 install pysnmp
pip3 install --upgrade pysnmp
root@DESKTOP-RAG9L0F:~# pip3 install paramiko
root@DESKTOP-RAG9L0F:~# python3 -m pip list | grep -i paramiko
paramiko               3.1.0

# 默认的安装位置
/usr/lib/python3/dist-packages
root@DESKTOP-RAG9L0F:~# which python3
/usr/bin/python3

# 查看模块的详细信息
pip3 show pysnmap
root@DESKTOP-RAG9L0F:/etc# pip3 show paramiko
Name: paramiko
Version: 3.1.0
Summary: SSH2 protocol library
Home-page: https://paramiko.org
Author: Jeff Forcier
Author-email: [email protected]
License: LGPL
Location: /usr/local/lib/python3.10/dist-packages
Requires: bcrypt, cryptography, pynacl
Required-by:

# 搜索模块要安装搜索模块
pip list | grep search 
pip3 install pip-search
pip_search ftp

image-20230327083624294


# 安装模块的第一种方式
#安装nmap模块和nmap模块的使用方法请参考 https://xael.org/pages/python-nmap-en.html
┌──(root㉿kali)-[~/python-nmap-0.7.1]
└─# pip3 list | grep -i nmap
python-nmap                    0.7.1     
┌──(root㉿kali)-[~/python-nmap-0.7.1]
└─# pip3 uninstall python-nmap
┌──(root㉿kali)-[~]
└─# wget https://xael.org/pages/python-nmap-0.7.1.tar.gz
┌──(root㉿kali)-[~]
└─# tar -zxvf python-nmap-0.7.1.tar.gz 
┌──(root㉿kali)-[~]
└─# cd python-nmap-0.7.1 
┌──(root㉿kali)-[~/python-nmap-0.7.1]
└─# python setup.py install   
root㉿kali)-[~/python-nmap-0.7.1]
└─# pip3 list | grep -i nmap  
python-nmap 0.7.1
---------------------------------
# 安装模块的第二种方式
┌──(root㉿kali)-[~]
└─# python3 -m pip install python-nmap
┌──(root㉿kali)-[~]
└─# python3                           
Python 3.10.8 (main, Nov  4 2022, 09:21:25) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmap  # 引入模块
>>> nm = nmap.PortScanner()  # 将模块赋值给一个变量nm
>>> nm.scan('127.0.0.1','22-100') # 通过nm调用子命令scan
{'nmap': {'command_line': 'nmap -oX - -p 22-100 -sV 127.0.0.1', 'scaninfo': {'tcp': {'method': 'syn', 'services': '22-100'}}, 'scanstats': {'timestr': 'Thu Feb 23 05:54:59 2023', 'elapsed': '0.55', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'127.0.0.1': {'hostnames': [{'name': 'localhost', 'type': 'PTR'}], 'addresses': {'ipv4': '127.0.0.1'}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'localhost-response'}}}}
# 看具体是通过哪个命令实现的,上方当中也有显示
>>> nm.command_line()
'nmap -oX - -p 22-100 -sV 127.0.0.1'
----
┌──(root㉿kali)-[~]
└─# cat /tmp/namp.py
import nmap
nm = nmap.PortScanner()
SCAN=nm.scan('127.0.0.1','22-100')
COMMD=nm.command_line()
print(SCAN,COMMD)

模块帮助

# 多个模块之前以逗号分隔即可,如下所示
import sys,os
# 导入sys库,此库是主要用来向python脚本当中传递命令行参数时使用的,也可以用做代码审计
>>> import sys

通过dir函数查看sys库有哪些方法,这种方法又被称为内省.

>>> import sys
>>> dir(sys)
['__breakpointhook__', '__displayhook__', '__doc__', …………
 
# 通过dir进一步查看(库+方法),这个方法又支持哪些具体方法
>>> import paramiko
>>> dir(paramiko)
'SSHConfig', 'SSHConfigDict', 'SSHException' ……
>>> dir(paramiko.SSHConfig)
['SETTINGS_REGEX', 'TOKENS_BY_CONFIG_KEY', '__class__', '__delattr__', '__dict__', ……

也可以去pypi.org网站上查看库支持的方法

image-20230327083637296

常用帮助

HELP

HELP两种使用方式:

  • 交互式的
  • 命令行
# 交互式,如下所示,告诉你print是一个内置函数
>>> help()
>>> print
<built-in function print>
# 我们查看一下random,它告诉我们random是一个模块
help> random
Help on module random:

NAME
    random - Random variable generators.
MODULE REFERENCE

# 列出所有已经安装的模块
help> modules

# 列出所有的keywords
help> keywords
Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not

# 显示所有的运算符
help> symbols

Here is a list of the punctuation symbols which Python assigns special meaning
to. Enter any symbol to get more help.

!=                  +                   <=                  __
"                   +=                  <>                  `
"""                 ,                   ==                  b"
%                   -                   >                   b'
%=                  -=                  >=                  f"
&                   .                   >>                  f'
&=                  ...                 >>=                 j
'                   /                   @                   r"
'''                 //                  J                   r'
(                   //=                 [                   u"
)                   /=                  \                   u'
*                   :                   ]                   |
**                  <                   ^                   |=
**=                 <<                  ^=                  ~
*=                  <<=                 _

# 查询这个符号是什么意思
help> !=
Operator precedence
*******************

The following table summarizes the operator precedence in Python, from
highest precedence (most binding) to lowest precedence (least
binding).  Operators in the same box have the same precedence.  Unless
the syntax is explicitly given, operators are binary.  Operators in
the same box group left to right (except for exponentiation and
conditional expressions, which group from right to left).

Note that comparisons, membership tests, and identity tests, all have
the same precedence and have a left-to-right chaining feature as
described in the Comparisons section.
>>> help(os)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'os' is not defined
>>> import os
>>> help(os)
Help on module os:

NAME
    os - OS routines for NT or Posix depending on what system we're on.

>>> help('os')
>>> help('paramiko')
>>> help('nmap')
# 其实是对pydoc的一个封装
>>> help(help)
Help on _Helper in module _sitebuiltins object:

class _Helper(builtins.object)
 |  Define the builtin 'help'.
 |
 |  This is a wrapper around pydoc.help that provides a helpful message
 |  when 'help' is typed at the Python interactive prompt.

# 生成doc文档的
>>> help('pydoc')
Help on module pydoc:

NAME
    pydoc - Generate Python documentation in HTML or text for interactive use.

文档

用途 网址
查看内存 https://pythontutor.com/
中文官方文档 https://docs.python.org/zh-cn/3/
英文官方文档 https://docs.python.org/3/

在安装完python之后,一般也会附带一个HTML格式的python文档,如下所示:

image-20230327083649970

image-20230327083659123

image-20230327083713954

image-20230327083726280

image-20230327083737738

image-20230327083752265

@xiaolai's works

标签:help,python,nmap,导入,模块,pip,root
From: https://www.cnblogs.com/yizhangheka/p/17260301.html

相关文章

  • Python - pandas 之常用代码块[转]
    原文:40UsefulPandasSnippetsPandassnippetsthatcomeinhandyindataanalysiswork-2022.04.20相关:Python-pandas之csv文件读取与写入-AIUAIPytho......
  • 复杂「场景」数据导入导出
    目录一、业务背景二、场景分析三、流程设计1、业务流程2、导入流程3、导出流程四、结构设计五、实践总结六、参考源码只想写单表和文件的搬运,数据不过百最好;一、业务背......
  • Python装饰器
    装饰器实质上就是一个python函数,在保证原始业务代码不做任何修改的情况下利用切面的原则动态地增加额外的操作功能。deflogging(func):#接收一个当前执行函数或方法......
  • python工程里面的类型的思考
    虽然我的工程语言是python语言,在工程搭建过程中非常注意类型提示的问题。关于方法的方法的返回值类型的问题:常用的方式是在函数/方法书写一些尖头+类型,这样调用方能很方......
  • Python3.0 新特性
    这篇文章主要介绍了相比于python2.6,python3.0的新特性。更详细的介绍请参见python3.0的文档。CommonStumblingBlocks本段简单的列出容易使人出错的变动。  *prin......
  • Python函数闭包(看一遍就懂系列)
    闭包的定义定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)下面这个就是一个简单的闭包函数defExFunc(n):sum=ndefInsFunc():......
  • Python多任务-多线程-多进程-协程-进阶学习
    --多任务-多线程-多进程-协程-进阶学习--文中所提到的案例参考:GITHUB中项目文件夹https://github.com/FangbaiZhang/Python_advanced_learning/tree/master/02_Python_ad......
  • CMD窗口中运行python脚本(虚拟环境下运行py文件)
    项目文件夹创建虚拟环境参考博文:WIN10系统下的Python3.7安装虚拟环境virtualenv和创建Web网站下面以Python_advanced_learning项目文件中的005_MiniWeb_Web服务器_实现模......
  • python+selenium实现在某瓣上自动批量获取中文电影的英文名称
    一、需求背景知道一些电影的中文名称,但是想在国外网站上,查一下这些中文电影的评分。因此就必须知道这些中文电影的英文名称是什么,由此诞生次脚本 二、实现思路通过sele......
  • python3实现阿里云短信发送功能
    #-*-coding:utf-8-*-importuuidimportsysimportjsonimportuuidfromaliyunsdkcore.clientimportAcsClientfromaliyunsdkcore.profileimportregion_pr......