Buscar una cadena en un archivo [python]
phic
-
ccadic -
ccadic -
Hola.
Estoy aprendiendo python y me gustaría hacer un pequeño script que permita abrir un archivo y buscar en él cadenas de caracteres (que serán líneas de código de otro lenguaje) y luego mostrarlas con un print. ¿Cómo debería proceder?
Gracias de antemano.
Estoy aprendiendo python y me gustaría hacer un pequeño script que permita abrir un archivo y buscar en él cadenas de caracteres (que serán líneas de código de otro lenguaje) y luego mostrarlas con un print. ¿Cómo debería proceder?
Gracias de antemano.
Enlaces relacionados:
- busca una lista del diccionario en .TXT
- Fórmula de Excel: saber si una celda contiene parte de texto
- [Excel] CONTAR.SI con cadena de texto parcial
- Contar el número de valores diferentes en una columna de EXCEL
- Fórmula de Excel: "SI" una celda contiene una palabra, entonces ?
- Certificación Pix - Python y SQL
19 respuestas
¡Hola!
Aquí hay un ejemplo simple:
Buscamos las líneas que contienen "coucou" en el archivo fichier.txt y las mostramos:
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Aquí hay un ejemplo simple:
Buscamos las líneas que contienen "coucou" en el archivo fichier.txt y las mostramos:
#!/usr/bin/python # -*- coding: iso-8859-1 -*- cadena = "coucou" # Texto a buscar archivo = open("fichier.txt","r") for linea in archivo: if cadena in linea: print linea archivo.close() --
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Hola,
no conozco python aún.
sin embargo, creo que puedo responderte sobre
las cadenas están declaradas, pero ¿a qué se refieren cadena y línea?
De hecho, cadenas tampoco está declarada, sino inicializada.
Las variables línea, cadena cobran vida desde su uso, sin necesidad de una declaración como hacemos en C, por ejemplo.
Sebsauvage utiliza línea y cadena para tener coherencia en lo que ha hecho, pero puedes utilizar cualquier nombre (mantén de todos modos una coherencia entre lo que quieres lograr y los nombres de las variables que utilizas :-))
Ejemplo:
--
lami20j
no conozco python aún.
sin embargo, creo que puedo responderte sobre
las cadenas están declaradas, pero ¿a qué se refieren cadena y línea?
De hecho, cadenas tampoco está declarada, sino inicializada.
Las variables línea, cadena cobran vida desde su uso, sin necesidad de una declaración como hacemos en C, por ejemplo.
Sebsauvage utiliza línea y cadena para tener coherencia en lo que ha hecho, pero puedes utilizar cualquier nombre (mantén de todos modos una coherencia entre lo que quieres lograr y los nombres de las variables que utilizas :-))
Ejemplo:
fichero = open("fichero.txt","r") for línea in fichero: for palabra in cadenas: if palabra in línea: print línea fichero.close() --
lami20j
No hay ningún \n en tu código
Sí, aquí:
o.write('%s\n' % i.replace(entr1,entr2))
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Sí, aquí:
o.write('%s\n' % i.replace(entr1,entr2))
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
¿Y si quiero buscar varias cadenas y mostrarlas línea por línea? ¿Debo crear una clase, verdad?
No necesariamente.
Eres tú quien decide si quieres programar en forma de clases o no.
Pero si hay más de 30 tipos de cadenas a buscar, puede que sea largo.
Podríamos hacerlo así:
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
No necesariamente.
Eres tú quien decide si quieres programar en forma de clases o no.
Pero si hay más de 30 tipos de cadenas a buscar, puede que sea largo.
Podríamos hacerlo así:
#!/usr/bin/python # -*- coding: iso-8859-1 -*- cadenas = ["coucou1", "coucou2", "coucou3"] # Texto a buscar archivo = open("archivo.txt","r") for linea in archivo: for cadena in cadenas: if cadena in linea: print linea archivo.close() --
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Hola
Acabo de leer tu código y me surgen dos preguntas.
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
cadenas = ["coucou1",
"coucou2",
"coucou3"] # Texto a buscar
archivo = open("fichero.txt", "r")
for línea in archivo:
for cadena in cadenas:
if cadena in línea:
print línea
archivo.close()
cadenas está declarado, pero ¿qué corresponden a cadena y línea?
Y si después quieres reemplazar coucou por adiós en tu archivo de texto, ¿cómo lo haces?
Te hago estas dos preguntas porque tengo el problema en este momento.
Te paso mi código.
print "inicio" # inicio del procedimiento
from os import chdir
chdir("/Volumes/GERTEX/_test/")
import shutil, string, re
obfic = open("taglist.xml", "r") # Lectura del fichero taglist de las 60 últimas líneas
líneas = obfic.readlines()[-59:]
obfic.close()
obfic = open("tampon_taglist.xml", "w") # Copia en el archivo tampon_taglist de las 60 últimas líneas
obfic.write("".join(líneas))
s = '>442<'
re.sub(r'\s','>444<',s)
obfic.close()
shutil.copyfile('tampon_taglist.xml','nuevo_taglist.xml') # Copia de taglist.xml en nuevo_taglist.xml
print "fin" # fin del procedimiento
El principio es el siguiente, copio las 60 últimas líneas de un archivo que vuelvo a copiar en un archivo tampon. En este último reemplazo mi cadena de caracteres 442 por 444. Una vez formateado, deseo copiar la totalidad de este archivo en mi archivo original en la penúltima línea.
Si puedes ayudarme... gracias de antemano.
Acabo de leer tu código y me surgen dos preguntas.
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
cadenas = ["coucou1",
"coucou2",
"coucou3"] # Texto a buscar
archivo = open("fichero.txt", "r")
for línea in archivo:
for cadena in cadenas:
if cadena in línea:
print línea
archivo.close()
cadenas está declarado, pero ¿qué corresponden a cadena y línea?
Y si después quieres reemplazar coucou por adiós en tu archivo de texto, ¿cómo lo haces?
Te hago estas dos preguntas porque tengo el problema en este momento.
Te paso mi código.
print "inicio" # inicio del procedimiento
from os import chdir
chdir("/Volumes/GERTEX/_test/")
import shutil, string, re
obfic = open("taglist.xml", "r") # Lectura del fichero taglist de las 60 últimas líneas
líneas = obfic.readlines()[-59:]
obfic.close()
obfic = open("tampon_taglist.xml", "w") # Copia en el archivo tampon_taglist de las 60 últimas líneas
obfic.write("".join(líneas))
s = '>442<'
re.sub(r'\s','>444<',s)
obfic.close()
shutil.copyfile('tampon_taglist.xml','nuevo_taglist.xml') # Copia de taglist.xml en nuevo_taglist.xml
print "fin" # fin del procedimiento
El principio es el siguiente, copio las 60 últimas líneas de un archivo que vuelvo a copiar en un archivo tampon. En este último reemplazo mi cadena de caracteres 442 por 444. Una vez formateado, deseo copiar la totalidad de este archivo en mi archivo original en la penúltima línea.
Si puedes ayudarme... gracias de antemano.
Re,
olvidé los espacios. No puedo editar mi mensaje
--
lami20j
olvidé los espacios. No puedo editar mi mensaje
fichero = open("fichero.txt","r") for línea in fichero: for palabra in cadenas: if palabra in línea: print línea fichero.close() --
lami20j
Aquí está, exactamente.
Es el for que va a crear la variable cadena y línea y le va a dar sucesivamente cada uno de los valores de archivo y cadenas (respectivamente).
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Es el for que va a crear la variable cadena y línea y le va a dar sucesivamente cada uno de los valores de archivo y cadenas (respectivamente).
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Bonjour
Tengo un pequeño problema con la búsqueda de cadenas de caracteres.
He seguido tu ejemplo con el bucle, pero ahora me gustaría implementarlo en una
(entr1, entr2) = (StringVar(), StringVar())
def toto():
s = open('/Volumes/GERTEX/_test/tampon_taglist.txt','r')
o = open('/Volumes/GERTEX/_test/tampon1_taglist.txt','w')
for i in s.readlines():
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
s.close()
o.close()
bou1 = Button(fen1, text='Valider', command=toto)
Y ahora cuando compilo se detiene en la línea:
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
Creo que esto se debe a la declaración de las variables, pero no entiendo el problema.
Aquí está el script completo:
from Tkinter import *
from os import chdir
chdir("/Volumes/GERTEX/_test/")
#chdir("/_test/")
import shutil, string, re
obfic = open("taglist.txt","r")# Lectura del archivo taglist de las 60 últimas líneas
lignes = obfic.readlines()[-59:]
obfic.close()
obfic = open("tampon_taglist.txt","w") # Copia al archivo tampon_taglist de las 60 últimas líneas
obfic.write("".join(lignes))
obfic.close()
#Programa principal
fen1 = Tk()
fen1.title("Cálculo de los valores del archivo TAG")
fen1.geometry('500x300')
#(franc1,franc2,franc3,franc4,franc5,franc6,euro) = (StringVar(),StringVar(),StringVar(),StringVar(),StringVar(),StringVar(),StringVar())
(entr1, entr2) = (StringVar(), StringVar())
def seteuro():
s = open('/Volumes/GERTEX/_test/tampon_taglist.txt','r')
o = open('/Volumes/GERTEX/_test/tampon1_taglist.txt','w')
for i in s.readlines():
# o.write('%s\n' % i.replace(franc1,franc2)),('%s\n' % i.replace(franc3,franc4)),('%s\n' % i.replace(franc5,franc6))
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
s.close()
o.close()
#Listado de objetos
txt1 = Label(fen1, text='Ancien ID1:')
txt2 = Label(fen1, text='Nouveau ID1:')
txt3 = Label(fen1, text='Ancien ID2:')
txt4 = Label(fen1, text='Nouveau ID2:')
txt5 = Label(fen1, text='Ancien mnemonic:')
txt6 = Label(fen1, text='Nouveau mnemonic:')
#txt7 = Label(fen1, text='')
bou1 = Button(fen1, text='Valider', command=seteuro)
bou2 = Button(fen1, text='Quitter', command=fen1.destroy)
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
entr4 = Entry(fen1)
entr5 = Entry(fen1)
entr6 = Entry(fen1)
#entr7 = Entry(fen1)
#Implementación
txt1.grid(row=0)
txt2.grid(row=1)
txt3.grid(row=2)
txt4.grid(row=3)
txt5.grid(row=4)
txt6.grid(row=5)
#txt7.grid(row=5)
bou1.grid(row=10, column=1)
bou2.grid(row=10, column=2)
entr1.grid(row=0, column=1)
entr2.grid(row=1, column=1)
entr3.grid(row=2, column=1)
entr4.grid(row=3, column=1)
entr5.grid(row=4, column=1)
entr6.grid(row=5, column=1)
#entr7.grid(row=6,column=1)
#Inicio
fen1.mainloop()
Tengo un pequeño problema con la búsqueda de cadenas de caracteres.
He seguido tu ejemplo con el bucle, pero ahora me gustaría implementarlo en una
(entr1, entr2) = (StringVar(), StringVar())
def toto():
s = open('/Volumes/GERTEX/_test/tampon_taglist.txt','r')
o = open('/Volumes/GERTEX/_test/tampon1_taglist.txt','w')
for i in s.readlines():
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
s.close()
o.close()
bou1 = Button(fen1, text='Valider', command=toto)
Y ahora cuando compilo se detiene en la línea:
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
Creo que esto se debe a la declaración de las variables, pero no entiendo el problema.
Aquí está el script completo:
from Tkinter import *
from os import chdir
chdir("/Volumes/GERTEX/_test/")
#chdir("/_test/")
import shutil, string, re
obfic = open("taglist.txt","r")# Lectura del archivo taglist de las 60 últimas líneas
lignes = obfic.readlines()[-59:]
obfic.close()
obfic = open("tampon_taglist.txt","w") # Copia al archivo tampon_taglist de las 60 últimas líneas
obfic.write("".join(lignes))
obfic.close()
#Programa principal
fen1 = Tk()
fen1.title("Cálculo de los valores del archivo TAG")
fen1.geometry('500x300')
#(franc1,franc2,franc3,franc4,franc5,franc6,euro) = (StringVar(),StringVar(),StringVar(),StringVar(),StringVar(),StringVar(),StringVar())
(entr1, entr2) = (StringVar(), StringVar())
def seteuro():
s = open('/Volumes/GERTEX/_test/tampon_taglist.txt','r')
o = open('/Volumes/GERTEX/_test/tampon1_taglist.txt','w')
for i in s.readlines():
# o.write('%s\n' % i.replace(franc1,franc2)),('%s\n' % i.replace(franc3,franc4)),('%s\n' % i.replace(franc5,franc6))
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
s.close()
o.close()
#Listado de objetos
txt1 = Label(fen1, text='Ancien ID1:')
txt2 = Label(fen1, text='Nouveau ID1:')
txt3 = Label(fen1, text='Ancien ID2:')
txt4 = Label(fen1, text='Nouveau ID2:')
txt5 = Label(fen1, text='Ancien mnemonic:')
txt6 = Label(fen1, text='Nouveau mnemonic:')
#txt7 = Label(fen1, text='')
bou1 = Button(fen1, text='Valider', command=seteuro)
bou2 = Button(fen1, text='Quitter', command=fen1.destroy)
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
entr4 = Entry(fen1)
entr5 = Entry(fen1)
entr6 = Entry(fen1)
#entr7 = Entry(fen1)
#Implementación
txt1.grid(row=0)
txt2.grid(row=1)
txt3.grid(row=2)
txt4.grid(row=3)
txt5.grid(row=4)
txt6.grid(row=5)
#txt7.grid(row=5)
bou1.grid(row=10, column=1)
bou2.grid(row=10, column=2)
entr1.grid(row=0, column=1)
entr2.grid(row=1, column=1)
entr3.grid(row=2, column=1)
entr4.grid(row=3, column=1)
entr5.grid(row=4, column=1)
entr6.grid(row=5, column=1)
#entr7.grid(row=6,column=1)
#Inicio
fen1.mainloop()
Creo que esto proviene de la declaración de las variables, pero no entiendo el problema.
.replace() no puede trabajar con las variables de tkinter.
.replace() espera cadenas de caracteres estándar de Python, no variables tkinter (StringVar() es una variable de tkinter).
Por lo tanto, debería escribirse:
por ejemplo:
StringVar() solo es útil para leer o escribir un valor en una interfaz gráfica de tkinter.
Es innecesario para los programas Python en sí mismos.
PD: Usa el botón "code" para poner tu código fuente dentro.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
.replace() no puede trabajar con las variables de tkinter.
.replace() espera cadenas de caracteres estándar de Python, no variables tkinter (StringVar() es una variable de tkinter).
Por lo tanto, debería escribirse:
def toto(entr1,entr2): s = open('/Volumes/GERTEX/_test/tampon_taglist.txt','r') o = open('/Volumes/GERTEX/_test/tampon1_taglist.txt','w') for i in s.readlines(): o.write('%s\n' % i.replace(entr1,entr2)) s.close() o.close() por ejemplo:
entr1='coucou' entr2='kiki' toto(entr1,entr2)
StringVar() solo es útil para leer o escribir un valor en una interfaz gráfica de tkinter.
Es innecesario para los programas Python en sí mismos.
PD: Usa el botón "code" para poner tu código fuente dentro.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Sle seb
Gracias por toda tu información, ya que esto funciona de maravilla.
Pero tengo dos problemas que me quedan por identificar.
El primero es que en mi archivo txt, que estoy utilizando, tengo espacios entre cada línea, pero no veo de qué parámetro proviene.
El segundo es que después de haber creado mi ejecutable con py2exe, se abre una ventana de comandos de DOS cada vez y me gustaría hacerla desaparecer.
Y ya que estamos, busco integrar una especie de explorador para buscar mis archivos que me convienen, ¿puedes ayudarme?
Gracias de nuevo.
Gracias por toda tu información, ya que esto funciona de maravilla.
Pero tengo dos problemas que me quedan por identificar.
El primero es que en mi archivo txt, que estoy utilizando, tengo espacios entre cada línea, pero no veo de qué parámetro proviene.
El segundo es que después de haber creado mi ejecutable con py2exe, se abre una ventana de comandos de DOS cada vez y me gustaría hacerla desaparecer.
Y ya que estamos, busco integrar una especie de explorador para buscar mis archivos que me convienen, ¿puedes ayudarme?
Gracias de nuevo.
Tienes que leer esto:
https://sebsauvage.net/python/gui/index_fr.html
Te explicará cómo leer un valor de un campo tkinter y recuperar la cadena de caracteres.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
https://sebsauvage.net/python/gui/index_fr.html
Te explicará cómo leer un valor de un campo tkinter y recuperar la cadena de caracteres.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Claro, he probado tu pequeño ejemplo sebsauvage y tengo una pregunta: ¿cómo es que hay un salto de línea automático en cada cadena encontrada?
hola
hola2
hola3
Todo se juega en 'línea', supongo. Lo siento por esta pregunta poco interesante :p
hola
hola2
hola3
Todo se juega en 'línea', supongo. Lo siento por esta pregunta poco interesante :p
No entiendo, no hay ningún \n en tu código, y en el archivo fichier.txt hay solo:
coucou1
coucou2
coucou3
No veo dónde añades el \n. Es un misterio para mí :p
gracias
coucou1
coucou2
coucou3
No veo dónde añades el \n. Es un misterio para mí :p
gracias
Ah, de acuerdo, en realidad hablaba de este:
lo que da:
ruga@ubuntu:~/Desktop/docs/python$ cat archivo.txt
coucou1
coucou2
coucou3
ruga@ubuntu:~/Desktop/docs/python$ python prueba.py
coucou1
coucou2
coucou3
ruga@ubuntu:~/Desktop/docs/python$
¿No es un salto de línea automático?
#!/usr/bin/python # -*- coding: iso-8859-1 -*- cadenas = ["coucou1", "coucou2", "coucou3"] # Texto a buscar archivo = open("archivo.txt", "r") for linea in archivo: for cadena in cadenas: if cadena in linea: print linea archivo.close() lo que da:
ruga@ubuntu:~/Desktop/docs/python$ cat archivo.txt
coucou1
coucou2
coucou3
ruga@ubuntu:~/Desktop/docs/python$ python prueba.py
coucou1
coucou2
coucou3
ruga@ubuntu:~/Desktop/docs/python$
¿No es un salto de línea automático?
Cómo puedo escribir al final de mi archivo sin sobrescribir lo que ya existe.
'a' para agregar.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
f = open('monfichier.txt','a') 'a' para agregar.
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Gracias, impecable, eso funciona.
Me queda un pequeño problema.
Esta sintaxis funciona, pero me gustaría añadir otras variables, pero el reemplazo solo se realiza en el primer par.
¿Tienes alguna idea?
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
o.write('%s\n' % i.replace(entr1.get(), entr2.get()),
'%s\n' % i.replace(entr3.get(), entr4.get()))
Gracias de antemano
Me queda un pequeño problema.
Esta sintaxis funciona, pero me gustaría añadir otras variables, pero el reemplazo solo se realiza en el primer par.
¿Tienes alguna idea?
o.write('%s\n' % i.replace(entr1.get(), entr2.get()))
o.write('%s\n' % i.replace(entr1.get(), entr2.get()),
'%s\n' % i.replace(entr3.get(), entr4.get()))
Gracias de antemano
>>> a='coucou' >>> print a.replace('o','*').replace('c','C') C*uC*u >>> --
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
¡Hola a todos!
Tengo una pregunta. ¿Es posible buscar varias cadenas particulares en un archivo sabiendo que esta cadena no es una cadena "fija"? Lo mejor sería un ejemplo:
LaCadena = "buen día|tarde"
Cuando el script busque LaCadena en el archivo, ¿es posible hacer que devuelva una de las dos (ya sea "buen día" o "buenas tardes", todo depende de cuál esté en el archivo)?
Pero, por supuesto, el signo '|' no funciona aquí. Entonces, en realidad, estoy buscando una especie de operador que se use para hacer un O (creí entender que el or tenía otra utilidad).
Otra cosa, cuando se trata de una ubicación vacía, por ejemplo, aceptar todas las cadenas de tipo:
LaCadena = "Es necesario * o no funcionará" (perdón por el ejemplo tonto)
el '*' es la ubicación que puede ser cualquier cosa. Ejemplo: 'Hacer esto' o 'Comer aquello',
es decir, busco encontrar todas las cadenas que comienzan con "Es necesario" [con aquí, no importan las palabras] y que terminan con "o no funcionará". El objetivo es buscar todas las cadenas como:
"Es necesario comer mucho o no funcionará", "Es necesario hacer la cama todas las mañanas o no funcionará", "es necesario beber café por la mañana o no funcionará". En fin, ya entendieron :]
Espero que mis preguntas sean comprensibles...
Gracias de antemano! :]
Tengo una pregunta. ¿Es posible buscar varias cadenas particulares en un archivo sabiendo que esta cadena no es una cadena "fija"? Lo mejor sería un ejemplo:
LaCadena = "buen día|tarde"
Cuando el script busque LaCadena en el archivo, ¿es posible hacer que devuelva una de las dos (ya sea "buen día" o "buenas tardes", todo depende de cuál esté en el archivo)?
Pero, por supuesto, el signo '|' no funciona aquí. Entonces, en realidad, estoy buscando una especie de operador que se use para hacer un O (creí entender que el or tenía otra utilidad).
Otra cosa, cuando se trata de una ubicación vacía, por ejemplo, aceptar todas las cadenas de tipo:
LaCadena = "Es necesario * o no funcionará" (perdón por el ejemplo tonto)
el '*' es la ubicación que puede ser cualquier cosa. Ejemplo: 'Hacer esto' o 'Comer aquello',
es decir, busco encontrar todas las cadenas que comienzan con "Es necesario" [con aquí, no importan las palabras] y que terminan con "o no funcionará". El objetivo es buscar todas las cadenas como:
"Es necesario comer mucho o no funcionará", "Es necesario hacer la cama todas las mañanas o no funcionará", "es necesario beber café por la mañana o no funcionará". En fin, ya entendieron :]
Espero que mis preguntas sean comprensibles...
Gracias de antemano! :]
Veo lo que quieres hacer.
Puedes usar las expresiones regulares (módulo re)
Para el primero:
Para el segundo:
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Puedes usar las expresiones regulares (módulo re)
Para el primero:
'buena "día"|"noche"'(sintaxis a verificar, no lo he probado)
Para el segundo:
"Es necesario (.+?) si no, no funcionará"
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Lo primero es que en mi archivo txt, que estoy utilizando, tengo espacios entre cada línea, pero no sé de qué parámetro proviene.
¿Trabajas bajo Unix/Linux?
De hecho, puede haber 3 tipos de retorno de línea diferentes para un archivo de texto: el modo MS-Dos, el modo Unix y el modo Macintosh.
El modo MS-Dos utiliza 2 caracteres (\r\n) lo que puede, en algunos casos, provocar dos retornos de línea.
Dificil de decir: no tengo ni el programa ni el archivo a procesar.
Lo segundo es que después de haber creado mi ejecutable con py2exe se abre una ventana de comandos dos cada vez y me gustaría hacerla desaparecer.
En tu script py2exe, en lugar de hacer: console=["monprogramme.py"]
haz: windows=["monprogramme.py"]
Y siendo sincero, estoy buscando integrar una especie de explorador para buscar mis archivos que van bien, ¿puedes ayudarme?
Si usas tkinter para la interfaz gráfica, hay cuadros de diálogo listos para la selección de archivos o directorios.
Ejemplos: https://www.sebsauvage.net/python/snyppets/#tkinter_dialogs
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
¿Trabajas bajo Unix/Linux?
De hecho, puede haber 3 tipos de retorno de línea diferentes para un archivo de texto: el modo MS-Dos, el modo Unix y el modo Macintosh.
El modo MS-Dos utiliza 2 caracteres (\r\n) lo que puede, en algunos casos, provocar dos retornos de línea.
Dificil de decir: no tengo ni el programa ni el archivo a procesar.
Lo segundo es que después de haber creado mi ejecutable con py2exe se abre una ventana de comandos dos cada vez y me gustaría hacerla desaparecer.
En tu script py2exe, en lugar de hacer: console=["monprogramme.py"]
haz: windows=["monprogramme.py"]
Y siendo sincero, estoy buscando integrar una especie de explorador para buscar mis archivos que van bien, ¿puedes ayudarme?
Si usas tkinter para la interfaz gráfica, hay cuadros de diálogo listos para la selección de archivos o directorios.
Ejemplos: https://www.sebsauvage.net/python/snyppets/#tkinter_dialogs
--
“La vida es corta - Necesitas Python” -- Bruce Eckel, miembro del comité ANSI C++
Hola,
Quisiera saber si es posible hacer lo mismo pero en todo el texto, no línea por línea. Es decir, una búsqueda global de la palabra en todo el texto, sin utilizar un bucle que busque línea por línea.
¡Gracias!
Quisiera saber si es posible hacer lo mismo pero en todo el texto, no línea por línea. Es decir, una búsqueda global de la palabra en todo el texto, sin utilizar un bucle que busque línea por línea.
¡Gracias!
¿Tienes alguna idea?
Gracias por tu ayuda.