multiple into delimiters python string split

into - split python 3



dividiendo una cadena basada en la pestaƱa en el archivo (5)

Dividir en la pestaña, pero luego eliminar todas las coincidencias en blanco.

text = "hi/tthere/t/t/tmy main man" print [splits for splits in text.split("/t") if splits is not ""]

Salidas:

[''hi'', ''there'', ''my main man'']

Tengo un archivo que contiene valores separados por una pestaña ("/ t"). Estoy tratando de crear una lista y almacenar todos los valores de archivo en la lista. Pero me sale un problema. Aquí está mi código.

line = "abc def ghi" values = line.split("/t")

Funciona bien siempre y cuando solo haya una pestaña entre cada valor. Pero si hay una pestaña que una, entonces copia la tabla a los valores también. En mi caso, la mayoría de las pestañas adicionales estarán después del último valor en el archivo. ¿Alguien puede ayudarme eso?


Puedes usar regex aquí:

>>> import re >>> strs = "foo/tbar/t/tspam" >>> re.split(r''/t+'', strs) [''foo'', ''bar'', ''spam'']

actualizar:

Puede usar str.rstrip para deshacerse de ''/t'' y luego aplicar regex.

>>> yas = "yas/t/tbs/tcda/t/t" >>> re.split(r''/t+'', yas.rstrip(''/t'')) [''yas'', ''bs'', ''cda'']


Puedes usar regexp para hacer esto:

import re patt = re.compile("[^/t]+") s = "a/t/tbcde/t/tef" patt.findall(s) [''a'', ''bcde'', ''ef'']


Python tiene soporte para archivos CSV en el módulo csv del mismo nombre. Es relativamente mal llamado, ya que admite mucho más que solo valores separados por comas .

Si necesita ir más allá de la división básica de palabras, debería echar un vistazo. Digamos, por ejemplo, porque necesita lidiar con los valores entre comillas ...


Una otra solución basada en regex :

>>> strs = "foo/tbar/t/tspam" >>> r = re.compile(r''([^/t]*)/t*'') >>> r.findall(strs)[:-1] [''foo'', ''bar'', ''spam'']