1
resposta

Erro de traceback

O meu erro dá quando executo o upload.

venv) pascottodf@Pascotto:~/projeto_requests$ python3 manipula_repos.py
status_code criação do repositório: 201
status_code upload do arquivo: 201
Traceback (most recent call last):
  File "/home/pascottodf/projeto_requests/manipula_repos.py", line 50, in <module>
    novo_repo.add_arquivo(nome_repo, 'linguagens_netflix.csv', 'dados/linguagens_netflix.csv')
  File "/home/pascottodf/projeto_requests/manipula_repos.py", line 27, in add_arquivo
    with open(caminho_arquivo, "rb") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'dados/linguagens_netflix.csv'
1 resposta

Olá, Marcelo! Como vai?

Esse erro está ocorrendo porque o arquivo dados/linguagens_netflix.csv não foi encontrado. Isso pode acontecer por alguns motivos, como o arquivo não estar no local correto ou o caminho estar incorreto.

Vou deixar abaixo algumas sugestões para resolver o problema:

  1. Verifique se o arquivo linguagens_netflix.csv está na pasta dados dentro do diretório onde você está executando o script. O caminho deve ser relativo ao diretório atual do script.

  2. Tente usar o caminho absoluto para garantir que o script encontre o arquivo. Você pode fazer isso da seguinte forma:

    import os
    
    caminho_arquivo = os.path.join(os.getcwd(), 'dados/linguagens_netflix.csv')
    
  3. Verifique se não há erros de digitação no nome do arquivo ou no caminho.

→ Vou deixar abaixo um exemplo de como você pode modificar o método add_arquivo para usar o caminho absoluto:

import os

class ManipulaRepositorios:
    # ... (restante do código)

    def add_arquivo(self, nome_repo, nome_arquivo, caminho_arquivo):
        caminho_absoluto = os.path.join(os.getcwd(), caminho_arquivo)

        # Codificando o arquivo
        with open(caminho_absoluto, "rb") as file:
            file_content = file.read()
        encoded_content = base64.b64encode(file_content)

        # Realizando o upload
        url = f"{self.api_base_url}/repos/{self.username}/{nome_repo}/contents/{nome_arquivo}"
        data = {
            "message": "Adicionando um novo arquivo",
            "content": encoded_content.decode("utf-8")
        }

        response = requests.put(url, json=data, headers=self.headers)
        print(f'status_code upload do arquivo: {response.status_code}')

Espero ter ajudado!

Abraço ✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!