Python -> (9) notas de estudo

módulo

módulo

Todo o código é escrito no interpretador Python é perdido ao sair intérprete. Mas ao escrever grandes programas que as pessoas tendem a código é dividido em vários ficheiros a utilizar, depuração, e ter uma melhor legibilidade. No módulo Python que usamos para atingir estes objectivos.

Um módulo é um definições e declarações de arquivos Python. O nome do arquivo é o nome do módulo com .pyo sufixo.

Da variável global pode ser __name__obtido módulo nome do módulo (a string).

Agora, dê uma olhada em como o módulo funciona. Criar um bars.pyarquivo. Documento tem o seguinte teor:

"""
Bars Module
============
这是一个打印不同分割线的示例模块
"""
def starbar(num):
    """打印 * 分割线

    :arg num: 线长
    """
    print('*' * num)

def hashbar(num):
    """打印 # 分割线

    :arg num: 线长
    """
    print('#' * num)

def simplebar(num):
    """打印 - 分割线

    :arg num: 线长
    """
    print('-' * num)

Agora iniciar os módulos de interpretação e de importação:

>>> import bars
>>>

Você deve usar o nome do módulo para acessar funções no módulo:

>>> bars.hashbar(10)
##########
>>> bars.simplebar(10)
----------
>>> bars.starbar(10)
**********

módulos de importação : módulo de importação existem maneiras diferentes. Você pode ser introduzido a partir do módulo de função especificada:

>>> from bars import simplebar, starbar
>>> simplebar(20)
--------------------

Você também pode usar from module import *todos definir o módulo de importação, mas esta não é uma prática recomendada.

pacote

Contém um __init__.pydiretório de arquivos pode ser usado como um pacote, todos os diretórios no .pyarquivo é um sub-módulo deste pacote .
Exemplo, primeiro criar um mymodulediretório:

$ cd ~
$ mkdir mymodule

Serão bars.pycopiados para o mymodulediretório;
uso touchpara criar um utils.pyarquivo;
uso touchpara criar um vazio __init__.pyarquivo.

Portanto, se mymoduleno __init__.pyarquivo contém o seguinte:

from mymodule.bars import simplebar
__all__ = [simplebar, ]

** Só então simplebar disponível na importação. ** Se o teste em necessidades intérprete python3 a ser determinado é mymodulerealizada no mesmo diretório diretório de nível python3, algo como o seguinte, ele irá levar a ImportError: No module named 'mymodule'um erro de.

$ cd /home/shiyanlou
$ python3
>>>

from mymodule import * Somente o trabalho em um nível módulo do objeto, tentando funções ou classes de importação fará com erro de sintaxe.

O módulo padrão

Python vem com a instalação irá instalar os módulos diferentes, eles podem ser usados conforme necessário, você também pode instalar um novo módulo para outros fins especiais.
Aqui Insert Picture Descrição
O exemplo mostra como acima para obter uma lista de todos os módulos instalados no sistema é.

módulo de OS

osMódulo fornece funções relacionadas com o sistema operacional. Importá-lo pode usar a seguinte declaração:

>>> import os

getuid()Função retorna ID de usuário efetiva do processo atual.
getpid()Função retorna o id do processo atual.
getppid()Retorna o ID do processo pai.

>>> os.getuid()
500
>>> os.getpid()
16150
>>> os.getppid()
14847

uname()Função retorna informações de identificação dos diferentes sistemas operacionais, os seus detalhes em Linux podem ser devolvidos a partir do uname -acomando obtido. uname()Ele retorna o objeto é uma tupla ( sysname, nodename, release, version, machine).

>>> os.uname()
('Linux', 'd80', '2.6.34.7-56.fc13.i686.PAE', '#1 SMP Wed Sep 15 03:27:15 UTC 2010', 'i686')

getcwd()Função retorna o diretório de trabalho atual. chdir(path)É para mudar o diretório atual path. No primeiro exemplo, vemos o diretório de trabalho atual é /home/zhangsan, em seguida, nós mudamos para o diretório de trabalho atual /Codee mais uma vez ver o diretório de trabalho atual:

>>> os.getcwd()
'/home/zhangsan'
>>> os.chdir('Code')
>>> os.getcwd()
'/home/zhangsan/Code'

Agora use as outras funções no módulo os para criar a sua própria função, ele irá listar todos os arquivos e diretórios em um determinado diretório:

def view_dir(path='.'):
    """
    这个函数打印给定目录中的所有文件和目录
    :args path: 指定目录,默认为当前目录
    """
    names = os.listdir(path)
    names.sort()
    for name in names:
        print(name, end =' ')
    print()

Exemplos da função de utilização view_dir ():

>>> view_dir('/')
.bashrc .dockerenv .profile bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
módulo de solicitações

Os pedidos é um terceiro módulos Python, introduz seu site oficial a seguinte: Os pedidos apenas uma não-transgênico Python HTTP biblioteca, os seres humanos podem desfrutar com segurança.

módulos de terceiros não é o módulo padrão, o que significa que você precisa instalá-lo usando pip3instalá-lo.

Primeiro de tudo você deseja instalar pip3:

$ sudo apt-get update
$ sudo apt-get install python3-pip

Em seguida, pip3instalar requests:

$ sudo pip3 install requests

O comando acima irá instalar a versão Python3 de módulo Solicitações em seu sistema.

Você pode usar o get()método para obter qualquer página

>>> import requests
>>> req = requests.get('https://github.com')
>>> req.status_code
200

reqO textservidor propriedade há retorna uma página HTML.

Exemplo, usar esse conhecimento para escrever um arquivo pode ser baixado a partir do URL especificado no programa.

#!/usr/bin/env python3
import requests

def download(url):
    '''
    从指定的 URL 中下载文件并存储到当前目录
    url: 要下载页面内容的网址
    '''
    # 检查 URL 是否存在
    try:
        req = requests.get(url)
    except requests.exceptions.MissingSchema:
        print('Invalid URL "{}"'.format(url))
        return
    # 检查是否成功访问了该网站
    if req.status_code == 403:
        print('You do not have the authority to access this page.')
        return
    filename = url.split('/')[-1]
    with open(filename, 'w') as fobj:
        fobj.write(req.content.decode('utf-8'))
    print("Download over.")

if __name__ == '__main__':
    url = input('Enter a URL: ')
    download(url)

Cada módulo python (arquivo de python, que é aqui download.py) contém uma variável interna __name__, quando o módulo é executado diretamente, __name__igual ao nome do arquivo (incluindo a extensão .py); Se o módulo importpara outros módulos, o módulo é __name__igual ao nome do módulo (sem .py sufixo). " __main__" Refere-se sempre o nome de módulo de execução actualmente (contendo o sufixo py). Além disso, quando o módulo é executado diretamente, __name__ == 'main'o resultado é verdadeiro.
if __name__ == '__main__':Esta declaração, seu papel é apenas no módulo atual (módulo: file python, que é download.py aqui) chamado de __main__tempo até que a instrução é executada dentro deste bloco if (isto é, como quando os scripts executado). Em outras palavras, quando este arquivo é importado para outro documento na forma de módulos, na declaração se o bloco não executa.

módulo de processamento de linha de comando parâmetro argparse

Aqui está o módulo é utilizado sys, a linha de comando passou todos os parâmetros podem ser usados sys.argvpara obter, se você quer lidar com os parâmetros que você pode usar argparsemódulo;

conclusão TAB

Primeiro, crie um arquivo: ~/.pythonrc, escrever o seguinte no documento:

import rlcompleter, readline
readline.parse_and_bind('tab: complete')


history_file = os.path.expanduser('~/.python_history')
readline.read_history_file(history_file)

import atexit
atexit.register(readline.write_history_file, history_file)

O próximo passo no ~/.bashrcarquivo de configuração de PYTHONSTARTUPvariáveis de ambiente para apontar para este arquivo:

$ export PYTHONSTARTUP=~/.pythonrc

Agora, a partir de agora cada vez que você abrir o shell bash, você terá a plena TAB história complemento e código interpretador Python entrou.

Para usar no shell atual, fonte do arquivo bashrc.

$ source ~/.bashrc

fonte

Publicado 33 artigos originais · ganhou elogios 1 · vista 1242

Acho que você gosta

Origin blog.csdn.net/weixin_44783002/article/details/104635282
Recomendado
Clasificación