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 .py
o 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.py
arquivo. 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__.py
diretório de arquivos pode ser usado como um pacote, todos os diretórios no .py
arquivo é um sub-módulo deste pacote .
Exemplo, primeiro criar um mymodule
diretório:
$ cd ~
$ mkdir mymodule
Serão bars.py
copiados para o mymodule
diretório;
uso touch
para criar um utils.py
arquivo;
uso touch
para criar um vazio __init__.py
arquivo.
Portanto, se mymodule
no __init__.py
arquivo 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 é mymodule
realizada 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.
O exemplo mostra como acima para obter uma lista de todos os módulos instalados no sistema é.
módulo de OS
os
Mó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 -a
comando 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 /Code
e 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 pip3
instalá-lo.
Primeiro de tudo você deseja instalar pip3
:
$ sudo apt-get update
$ sudo apt-get install python3-pip
Em seguida, pip3
instalar 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
req
O text
servidor 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 import
para 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.argv
para obter, se você quer lidar com os parâmetros que você pode usar argparse
mó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 ~/.bashrc
arquivo de configuração de PYTHONSTARTUP
variá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