Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Convertir texto en una tupla o lista (Python)
#1
Hola me gustaría convertir un texto en una tupla o lista. El texto lo e sacado de aquí:

Código:
import os
passwd=os.system("cat /etc/passwd | tail -1")

Ahora que tengo la variable passwd con el texto que quiero, ¿Como lo convierto en una tupla o lista?
Responder
#2
Hola Sergio, bienvenido.

os.system() es un método poco recomendado para ejecutar comandos del sistema, especialmente si querés obtener el resultado, porque siempre retorna uno o cero. De hecho, verás que en tu código passwd es siempre cero.

La alternativa más conveniente es usando el módulo estándar subprocess:

  1. import subprocess
  2. cmd = "cat /etc/passwd | tail -1"
  3. p = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
  4. passwd = p.stdout


Te dejo este artículo para profundizar sobre el tema: https://recursospython.com/guias-y-manua...-procesos/.

Saludos
Responder
#3
(15-08-2018, 06:29 PM)Francisco escribió: Hola Sergio, bienvenido.

os.system() es un método poco recomendado para ejecutar comandos del sistema, especialmente si querés obtener el resultado, porque siempre retorna uno o cero. De hecho, verás que en tu código passwd es siempre cero.

La alternativa más conveniente es usando el módulo estándar subprocess:

  1. import subprocess
  2. cmd = "cat /etc/passwd | tail -1"                              
  3. p = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
  4. passwd = p.stdout


Te dejo este artículo para profundizar sobre el tema: https://recursospython.com/guias-y-manua...-procesos/.

Saludos

Muchas gracias por tu ayuda, pero ¿como consigo convertir el resultado del comando cat en una tupla o lista?
Responder
#4
Supongo que lo que querés es separar la cadena en múltiples elementos según un delimitador. Esto se puede hacer con el método split().

  1. >>> s = "A,B,C"
  2. >>> t = s.split(",")
  3. >>> t
  4. ['A', 'B', 'C']
Responder
#5
(16-08-2018, 12:22 AM)Francisco escribió: Supongo que lo que querés es separar la cadena en múltiples elementos según un delimitador. Esto se puede hacer con el método split().

  1. >>> s = "A,B,C"
  2. >>> t = s.split(",")
  3. >>> t
  4. ['A', 'B', 'C']

Muchas gracias por tu apoyo de nuevo!!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)