Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

338
Visualizações
proporcione un nombre de archivo para un objeto similar a un archivo creado por urlopen() o Requests.get()

Estoy construyendo un bot de Telegram usando una biblioteca de Telepot . Para enviar una imagen descargada de Internet, debo usar el método sendPhoto , que acepta un objeto similar a un archivo.

Mirando a través de los documentos encontré este consejo:

Si urlopen() obtiene el objeto similar a un archivo, lo más probable es que tenga que proporcionar un nombre de archivo porque los servidores de Telegram requieren conocer la extensión del archivo.

Entonces, la pregunta es, si obtengo mi objeto similar a un archivo abriéndolo con requests.get y envolviéndolo con BytesIO así:

 res = requests.get(some_url) tbot.sendPhoto( messenger_id, io.BytesIO(res.content) )

¿Cómo y dónde proporciono un nombre de archivo?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Proporcionaría el nombre de archivo como el atributo .name del objeto.

Abrir un archivo con open() tiene un atributo .name.

 >>> local_file = open("file.txt") >>> local_file <open file 'file.txt', mode 'r' at ADDRESS> >>> local_file.name 'file.txt'

Donde abrir una url no lo hace. Es por eso que la documentación menciona específicamente esto.

 >>> import urllib >>> url_file = urllib.open("http://example.com/index.html") >>> url_file <addinfourl at 44 whose fp = <open file 'nul', mode 'rb' at ADDRESS>> >>> url_file.name AttributeError: addinfourl instance has no attribute 'name'

En su caso, necesitaría crear el objeto similar a un archivo y darle un atributo .name :

 res = requests.get(some_url) the_file = io.BytesIO(res.content) the_file.name = 'file.image' tbot.sendPhoto( messenger_id, the_file )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda