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:

Código:
import subprocess
cmd = "cat /etc/passwd | tail -1"                              
p = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
passwd = p.stdout

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

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
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:

Código:
import subprocess
cmd = "cat /etc/passwd | tail -1"                              
p = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
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().

Código:
>>> s = "A,B,C"
>>> t = s.split(",")
>>> t
['A', 'B', 'C']
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
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().

Código:
>>> s = "A,B,C"
>>> t = s.split(",")
>>> t
['A', 'B', 'C']

Muchas gracias por tu apoyo de nuevo!!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)