O problema é simples: tenho alguns dados sobre o gDrive, por exemplo, em
/projects/my_project/my_data*
.
Também tenho um notebook simples no gColab.
Então, eu gostaria de fazer algo como:
for file in glob.glob("/projects/my_project/my_data*"):
do_something(file)
Infelizmente, todos os exemplos (como este - https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb , por exemplo) sugere carregar principalmente apenas todos os dados necessários para o notebook.
Mas, se eu tiver muitos dados, pode ser bem complicado. Existe alguma oportunidade para resolver este problema?
Obrigado pela ajuda!
python
google-colaboratory
Scitator
fonte
fonte
Respostas:
Boas notícias, o PyDrive tem suporte de primeira classe no CoLab! PyDrive é um wrapper para o cliente Python do Google Drive. Aqui está um exemplo de como você faria o download de TODOS os arquivos de uma pasta, semelhante a usar
glob
+*
:Observe que os argumentos para
drive.ListFile
é um dicionário que coincide com os parâmetros usados pela API HTTP do Google Drive (você pode personalizar oq
parâmetro para ser ajustado ao seu caso de uso).Saiba que, em todos os casos, os arquivos / pastas são codificados por ids ( veja o 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk ) no Google Drive. Isso requer que você pesquise no Google Drive o ID específico correspondente à pasta na qual deseja fazer a raiz de sua pesquisa.
Por exemplo, navegue até a pasta
"/projects/my_project/my_data"
que está localizada em seu Google Drive.Veja que contém alguns arquivos, dos quais queremos fazer o download para o CoLab. Para obter o id da pasta a fim de usá-lo pelo PyDrive, olhe a url e extraia o parâmetro id. Nesse caso, o url correspondente à pasta era:
Onde o id é a última parte do url: 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk .
fonte
Edit : a partir de fevereiro de 2020, há agora uma IU de primeira classe para montar o Drive automaticamente.
Primeiro, abra o navegador de arquivos do lado esquerdo. Ele mostrará um botão 'Mount Drive'. Depois de clicado, você verá um prompt de permissão para montar o Drive e, em seguida, seus arquivos do Drive estarão presentes sem configuração quando você retornar ao notebook. O fluxo concluído é assim:
A resposta original segue, abaixo. (Isso também funcionará para blocos de anotações compartilhados.)
Você pode montar seus arquivos do Google Drive executando o seguinte snippet de código:
Em seguida, você pode interagir com seus arquivos do Drive no painel lateral do navegador de arquivos ou usando utilitários de linha de comando.
Aqui está um exemplo de caderno
fonte
Obrigado pelas ótimas respostas! A maneira mais rápida de obter alguns arquivos únicos para o Colab do Google Drive: carregue o assistente do Drive e monte
Isso solicitará autorização.
Abra o link em uma nova guia-> você receberá um código - copie-o de volta para o prompt agora você tem acesso ao google drive check:
em seguida, copie os arquivos conforme necessário:
confirme se os arquivos foram copiados:
fonte
A maioria das respostas anteriores é um pouco (muito) complicada,
Eu descobri que essa é a maneira mais fácil e rápida de montar o Google Drive no CO Lab . Você pode alterar o
mount directory location
para o que quiser apenas alterando o parâmetro paradrive.mount
. Ele lhe dará um link para aceitar as permissões com sua conta e, em seguida, você deve copiar e colar a chave gerada e, em seguida, o drive será montado no caminho selecionado.force_remount
é usado apenas quando você tem que montar a unidade independentemente de ela estar carregada anteriormente. Você pode ignorar este parâmetro when se não quiser forçar a montagemEdit: Verifique isto para encontrar mais maneiras de fazer as
IO
operações em colab https://colab.research.google.com/notebooks/io.ipynbfonte
Você não pode armazenar um arquivo permanentemente no colab. Embora você possa importar arquivos de sua unidade e sempre que terminar com o arquivo, você pode salvá-lo de volta.
Para montar o Google Drive em sua sessão Colab
você pode simplesmente escrever no Google Drive como faria em um sistema de arquivos local. Agora, se você ver que o seu Google Drive será carregado na guia Arquivos. Agora você pode acessar qualquer arquivo de seu colab, você pode escrever, bem como ler a partir dele. As alterações serão feitas em tempo real na sua unidade e qualquer pessoa que tenha o link de acesso ao seu arquivo pode visualizar as alterações feitas por você a partir do seu colab.
Exemplo
fonte
Sou preguiçoso e minha memória é ruim, então decidi criar um easycolab que é mais fácil de memorizar e digitar:
Certifique-se de instalá-lo primeiro:
!pip install easycolab
O
mount()
método basicamente implementa isso:fonte
Você pode simplesmente usar os trechos de código à esquerda da tela. insira a descrição da imagem aqui
Insira "Montagem do Google Drive em sua VM"
execute o código e copie e cole o código no URL
e então use! ls para verificar os diretórios
na maioria dos casos, você encontrará o que deseja no diretório "/ gdrive / Minha unidade"
então você pode fazer assim:
fonte
O que fiz primeiro:
Então
Depois, posso, por exemplo, ler arquivos csv com
Se você tiver locais diferentes para os arquivos, basta adicionar o caminho correto após Meu disco
fonte
Eu escrevi uma classe que baixa todos os dados para o '.' localização no servidor colab
Tudo pode ser extraído daqui https://github.com/brianmanderson/Copy-Shared-Google-to-Colab
fonte
Para extrair o zip do Google Drive de um notebook Google Colab, por exemplo:
fonte
@wenkesj
Estou falando sobre copiar o diretório e todos os subdiretórios.
Para mim, encontrei uma solução que se parece com esta:
No entanto, parece que o gDrive não gosta de copiar muitos arquivos.
fonte
Existem muitas maneiras de ler os arquivos em seu bloco de notas colab (**. Ipnb), algumas são:
Os métodos 1 e 2 funcionaram para mim , o resto eu não fui capaz de descobrir. Se alguém pudesse, como outros tentaram no post acima, escreva uma resposta elegante. desde já, obrigado.!
Primeiro método:
Não consegui montar meu Google Drive, então instalei essas bibliotecas
Assim que o processo de instalação e autorização for concluído, você primeiro monta sua unidade.
Após a instalação, consegui montar o google drive, tudo no seu google drive começa em / content / drive
Agora você pode simplesmente ler o arquivo da
path_to_your_folder
pasta para o pandas usando o caminho acima.Segundo método :
O que é conveniente se o arquivo que você deseja ler estiver presente no diretório de trabalho atual.
Se você precisar fazer upload de qualquer arquivo de seu sistema de arquivos local, pode usar o código abaixo, caso contrário, apenas evite.
suponha que você tenha abaixo da hierarquia de pastas em seu Google Drive:
Então, você simplesmente precisa do código abaixo para carregar no pandas.
fonte
Para ler todos os arquivos em uma pasta:
fonte
Funcionou perfeitamente para mim. Mais tarde, pude usar a
os
biblioteca para acessar meus arquivos da mesma forma que eu os acesso no meu PCfonte
Considere apenas baixar o arquivo com link permanente e
gdown
pré - instalado como aquifonte