
Tenho estudado o bash nas últimas três semanas e é muito fácil de aprender, pois é basicamente apenas entradas de linha de comando. Decidi agora mudar para python, mas fiquei perdido o tempo todo tentando aprender. Minha pergunta é em python, tudo parece girar em torno de números, listas, variáveis, etc. Embora o bash pareça ser muito mais direto com os comandos. Não consigo encontrar um exemplo em python onde exista uma maneira de mover arquivos, alterar diretórios ou outras coisas assim. Sinto que já estou acostumado demais com o bash para aprender python. Alguém pode me explicar isso?
Responder1
Bash não é uma linguagem de programação, mas um shell destinado a inserir comandos rapidamente e executá-los. Portanto, você executa outros comandos para fazer seu trabalho (por exemplo, mv
mover arquivos e diretórios). As variáveis no Bash são limitadas e como os comandos são todos strings, não há razão para ser muito rigoroso com isso. (é possível forçar tipos, veja help declare
).
Python, por outro lado, é uma linguagem de programação mais extensa com mais recursos de linguagem. Em vez de executar outros programas, você usa funções integradas ou outras funcionalidades de módulos (bibliotecas em outras linguagens). Para um tutorial básico sobre entrada/saída em Python, consultehttp://docs.python.org/tutorial/inputoutput.html. Vale a pena ler todo o tutorial se você quiser começar a programar em Python.
Responder2
Python é uma linguagem de programa; e como todas as outras linguagens de programação, foi projetada para descrever processos e dados. A maioria das suas perguntas trata da API do sistema operacional no os
módulo, por exemplo, os.chdir()
e (para o comando os.rename()
UNIX ).mv
O shell é um ambiente operacional destinado a fornecer acesso fácil ao sistema operacional em vários níveis (arquivos, processos, etc.). Inclui construções de programação como variáveis, loops e condicionais, portanto, nesse sentido, é uma linguagem de programação, mas não foi projetada para ser uma - isso evoluiu. Você pode fazer coisas incríveis com um script de shell - uma vez escrevi um sistema de rastreamento de chamadas que lidava com 60 mil solicitações por mês. Mas também tem limitações que uma linguagem de computador pode lidar melhor.
Por exemplo, vocêpoderiaescrever um navegador da web em Bash, mas seria ineficiente, especialmente ao tentar baixar simultaneamente as páginas html, css e javascript e lidar com a entrada do usuário. Uma linguagem de programação como Python, que tem acesso a threads, lidaria com isso de forma mais eficiente.
Embora o Python também tenha um “shell”, ele não é fácil de usar para acessar o sistema operacional. Mas é utilizável. Por exemplo, o comando shell mv * otherdirectory
seria escrito em Python como:
import os, glob
for fname in glob.glob('*'):
os.rename(fname, 'otherdirectory')
Ou de forma mais compacta:
import os, glob
[os.rename(fname, 'otherdirectory') for fname in glob.glob('*')]
A maioria dos tutoriais para idiomas deseja que você entenda primeiro o idioma e, depois, como ele interage com o sistema operacional. Para um shell, você precisa primeiro entender como ele faz interface com o sistema operacional.