Python - Partir cadena en posición x

 
Vista:
sin imagen de perfil
Val: 27
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por Josafat (18 intervenciones) el 09/10/2018 04:28:55
Hola buenas noches, ¿cómo puedo dividir una linea de texto en la posición que yo indique?

Ejemplo:
tengo la cadena almacenada en la variable:

palabra="http://www.itapizaco.edu.mx/magazine/index.htmlhttp://www.google.com/bot.html"

y quiero dividirla en dos, a partir de la posición 47 para que me queden dos palabras separadas

Espero alguién pueda ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 765
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por dario (185 intervenciones) el 09/10/2018 08:32:10
Hola, si ya tienes la posicion, podrias hacer esto:

1
2
3
4
5
6
#en este ejemplo la posicion es 47
a = 'http://www.itapizaco.edu.mx/magazine/index.htmlhttp://www.google.com/bot.html'
x = a[47:]
y = a[:47]
print(x)
print(y)
Y ya tienes los dos partes separadas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 27
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por Josafat (18 intervenciones) el 09/10/2018 16:39:49
Muchas gracias, me ha servido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por tincopasan (1082 intervenciones) el 09/10/2018 11:16:13
Si bien te han dado la respuesta a tu pregunta, creo que está incompleto el planteo, ya que para eso tendrás que indicar la posición de inicio y final para cada cadena y para eso debes conocerla,pero ¿qué pasa si la cadena es otra y no conoces o te tienes que poner a contar el inicio y final?¿y si es una cadena con más de dos direcciones?
viendo tu cadena el delimitador es http, por lo tanto se podría automatizar el proceso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#-*- coding: utf -8 -*-
import re
 
palabra="http://www.itapizaco.edu.mx/magazine/index.htmlhttp://www.google.com/bot.html"
inicios=[]
iterador = re.finditer('http',palabra)
for encontrado in iterador:
    inicios.append(encontrado.start())
 
contador= len(inicios)
for i in range(contador):
    inicio=inicios[i]
    if i < contador -1:
        final=inicios[i+1]
        print(palabra[inicio:final])
    else:
        print(palabra[inicio:])

por supuesto hay muchas más formas, ésta es a modo de ejemplo:
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 27
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por Josafat (18 intervenciones) el 09/10/2018 16:40:23
Excelente, me sirvió demasiado, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por Josafat (18 intervenciones) el 09/10/2018 18:17:17
Tengo otro problema al aplicarlo a todo un archivo de texto, algunas url me las sigue dejando juntas y repetidas y no encuentro como arreglarlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import re
lista=[]
file2 = open("url2.txt", "w")
#palabra="http://www.itapizaco.edu.mx/magazine/index.html"
inicios=[]
p1=""
with open("url.txt") as file:
    for palabra in file:
 
        iterador = re.finditer('http',palabra)
        for encontrado in iterador:
            inicios.append(encontrado.start())
 
        contador= len(inicios)
        for i in range(contador):
            inicio=inicios[i]
            if i < contador -1:
                final=inicios[i+1]
                if palabra[inicio:final] not in lista:
                    lista.append(palabra[inicio:final])
                else:
                    print("no")
            else:
                if palabra[inicio:] not in lista:
                    lista.append(palabra[inicio:])
                else:
                    print("no")
 
for u in lista:
 
    str1 = ''.join(u)
 
 
    if len(str1)>0:
        file2.write(str1)
        file2.write("\n")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Partir cadena en posición x

Publicado por tincopasan (1082 intervenciones) el 09/10/2018 20:14:28
lo modifico un poco, usando el archivo que subiste para que cree el nuevo con las direcciones de a una, fijate si es lo que buscas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#-*- coding: utf -8 -*-
import re
 
lista=[]
file2 = open("url2.txt", "w")
 
inicios=[]
p1=""
 
with open("url.txt") as file:
    contenido = file.read()
    iterador = re.finditer('http',contenido)
    for encontrado in iterador:
        inicios.append(encontrado.start())
        contador= len(inicios)
    for i in range(contador):
        inicio=inicios[i]
        if i < contador -1:
            final=inicios[i+1]
            print(contenido[inicio:final])
            lista.append(contenido[inicio:final])
        else:
            print(contenido[inicio:])
 
 
for u in lista:
    str1 ="".join(u)
    if len(str1)>0:
        file2.write(str1)
        file2.write("\n")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar