como obter uma lista de módulos internos em python?
<p>eu gostaria de obter uma lista de nomes de módulos internos em python, de modo que eu possa testar a popularidade das convenções de nomenclatura da função (sublinhado, camelcase ou mixedcase).</p><p>eu sei que há um <a href="https://docs.python.org/2/py-modindex.html">global module index</a> , mas eu estou querendo saber se existe uma lista de seqüências de caracteres, o que é mais fácil de usar :)</p><p><strong> atualização: </strong></p><pre><code>len(dir(\_\_builtins\_\_)) = 145 len(stdlib\_list("2.7")) = 430 help('modules') = 508 # counting manually the output </code></pre>
<p>os nomes dos módulos compilados estão em <a href="http://docs.python.org/library/sys.html#sys.builtin\_module\_names"><code>sys.builtin\_module\_names</code></a> . para todos os módulos importáveis, consulte <a href="http://docs.python.org/library/pkgutil.html#pkgutil.iter\_modules"><code>pkgutil.iter\_modules</code></a> .</p><p>execute-os de uma forma limpa <a href="http://pypi.python.org/pypi/virtualenv"><code>virtualenv</code></a> para obter (quase) apenas os módulos que vêm com o próprio python.</p><hr><p>observe que uma &ldquo;pesquisa de popularidade” incluirá necessariamente módulos que usam convenções de nomenclatura antigas e desencorajadas porque foram escritas antes das diretrizes de hoje serem implementadas e não podem ser alteradas porque precisam ser compatíveis com versões anteriores. pode ser útil para algo, mas não para responder a perguntas sobre práticas recomendadas, como &ldquo;como devo nomear minhas funções?”. para isso, veja o <a href="http://www.python.org/dev/peps/pep-0008/">pep8, o guia de estilo python</a> , especialmente a seção &ldquo;convenções de nomenclatura”.</p>
<p>usar uma variável de estado adicional, como uma variável de índice (que você normalmente usaria em linguagens como c ou php), é considerada não-pythonica.</p><p>a melhor opção é usar a função interna <a href="https://docs.python.org/3/library/functions.html#enumerate"><code>enumerate()</code></a> , disponível no python 2 e 3:</p><pre><code>for idx, val in enumerate(ints): print(idx, val) </code></pre><p>check out <a href="https://www.python.org/dev/peps/pep-0279/">pep 279</a> para mais.</p> por vezes perde-se tanto tempo apenas por uma linha de código.

o que faltava era “register\_type: input”

para quem precisar:

configuration.yaml

modbus:

type: tcp

host: 192.168.1.xxx

port: 502

sensors.yaml

- platform: modbus

registers:

- name: l1 voltage

unit\_of\_measurement: … como não é especificada a linguagem a ser utilizada, vamos usar python3. o código abaixo, devidamente comentado, faz o que se pede:print('digite as notas separadas por espaço (um aluno por linha): ')\nnotas = list()# cria a matriz\nfor \_ in range(5):# para cada um dos 5 alunos\nnotas.append(list(map(float,input().split())))# lê as 4 notas\nfor i in range(len(notas)):# para cada aluno\nprint(f'média aluno {i}: {0.25*sum(notas[i])}')# imprime a média\nmg = 0.05*sum([sum(aluno) for aluno in notas])# média geral\nprint(f'média geral: {mg}') # imprime média geral\nn = sum([0.25*sum(aluno)>mg for aluno in notas])# número acima da média\nprint(f'número acima da média: {n}')# imprime número acima da média <p>se você precisa aprender python do zero - você pode começar aqui: <a href="http://docs.python.org/tut/tut.html">http://docs.python.org/tut/tut.html</a> - guia para bons iniciantes</p><p>se você precisar ampliar seu conhecimento - continue aqui <a href="http://diveintopython3.ep.io/">http://diveintopython3.ep.io/</a> - bom livro de nível intermediário</p><p>se você precisar de habilidades perfeitas - conclua este <a href="http://www.pythonchallenge.com/">http://www.pythonchallenge.com/</a> - desafio excelente e interessante</p><p>e a fonte perfeita de conhecimento é <a href="http://docs.python.org/">http://docs.python.org/</a> - coleção de todo o conhecimento</p> <p> <a href="http://oreilly.com/catalog/9780596009588">programação de sistemas linux</a> </p><p>você pode consultar isso também <a href="https://unix.stackexchange.com/questions/80/recommended-readings-batter-understating-of-unix-linux-internals">link</a> </p> <p>se o seu sistema suportar um <strong> procfs </strong>, você poderá obter muitas informações do seu sistema em execução. é uma interface para as estruturas de dados do kernels, por isso também conterá informações sobre o seu hardware. por exemplo, para obter detalhes sobre a cpu usada, você poderia <code>cat /proc/cpuinfo</code> para mais informações, você deve ver o <em> <a href="http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html">man proc</a> </em>.</p><p>mais informações de hardware podem ser obtidas nas mensagens de log do buffer do anel do kernel com <code>dmesg</code>. por exemplo, isso fornecerá um breve resumo do hardware conectado recentemente e como ele é integrado no sistema.</p><p>estas são algumas "interfaces" básicas que você terá em todas as distribuições para obter algumas informações de hardware.</p><p>outras ferramentas 'pequenas' para coletar informações de hardware são:</p><ul> <li>lspci - hardware pci</li> <li>lsusb - hardware usb</li> </ul><p>dependendo da sua distribuição, você também terá acesso a uma dessas duas ferramentas para obter uma visão geral detalhada da sua configuração de hardware:</p><ul> <li> <a href="http://ezix.org/project/wiki/hardwarelister">lshw</a> </li> <li>hwinfo (específico do suse, mas também disponível em outras distribuições)</li> </ul><p>o "portão" para o seu hardware é através da <em> "desktop management interface"</em> (-&gt; dmi). essa estrutura expõe as informações do sistema ao seu software e é usada pelo lshw, por exemplo. uma ferramenta para interagir diretamente com o dmi é <strong> <a href="http://www.nongnu.org/dmidecode/">dmidecode</a> </strong> e disponível na maioria das distribuições como pacote. ele virá com <code>biosdecode</code> que mostra também as informações completas do bios disponíveis.</p> <p>na página do manual <code>ps</code>:</p><blockquote> <p>-e selecione todos os processos. idêntico a -a.</p> </blockquote><p>portanto, <code>ps -e</code> exibirá todos os processos. as opções comuns para "me dê tudo" são <code>ps -ely</code> ou <code>ps aux</code>, o último é o estilo bsd. frequentemente, as pessoas canalizam essa saída para <code>grep</code> para procurar um processo, como na resposta do xenoterracide. para evitar também ver <code>grep</code> na saída, você verá frequentemente algo como:</p><pre><code> ps -ef | grep [f]oo </code></pre><p>onde foo é o nome do processo que você está procurando.</p><p>no entanto, se você estiver procurando por um processo específico, recomendo usar o comando <code>pgrep</code> se estiver disponível. acredito que esteja disponível no ubuntu server. usar <code>pgrep</code> significa evitar a condição de corrida mencionada acima. ele também fornece alguns outros recursos que exigiriam truques <code>grep</code> cada vez mais complicados para serem replicados. a sintaxe é simples:</p><pre><code>pgrep foo </code></pre><p>onde foo é o processo pelo qual você está procurando. por padrão, ele simplesmente emitirá o id do processo (pid) do processo, se encontrar um. vejo <code>man pgrep</code> para outras opções de saída. achei a seguinte página muito útil:</p><p> <a href="http://mywiki.wooledge.org/processmanagement">http://mywiki.wooledge.org/processmanagement</a> </p> olá menguelyo tempblocksize é a memória reservada para rotinas internas (como order by) e dados em dataset e você pode colocar em bytes ou em megabytes com o m no final: 2m. obs: existe um consel... <p>você pode executar uma ferramenta sysinternals em <a href="http://live.sysinternals.com/autologon.exe">http://live.sysinternals.com/autologon.exe</a> para fazer a alteração do registro um pouco mais facilmente.</p> <p>você provavelmente deseja o <a href="http://man7.org/linux/man-pages/man1/comm.1.html">tilitário de comunicação unix</a> . <a href="http://gnuwin32.sourceforge.net/packages/coreutils.htm">versões do windows</a> estão incluídas no gnuwin32</p><blockquote> <p>nome</p> <pre><code> comm - compare two sorted files line by line </code></pre> <p>sinopse</p> <pre><code> comm [option]... file1 file2 </code></pre> <p>descrição</p> <pre><code> compare sorted files file1 and file2 line by line. with no options, produce three-column output. column one contains lines unique to file1, column two contains lines unique to file2, and column three contains lines common to both files. -1 suppress lines unique to file1 -2 suppress lines unique to file2 -3 suppress lines that appear in both files </code></pre></blockquote>