python - txt - ¿Cómo puedo obtener solo los nombres de encabezado.del archivo de texto
leer columnas en python (2)
Tengo un archivo de texto como a continuación:
Education:
askdjbnakjfbuisbrkjsbvxcnbvfiuregifuksbkvjb.iasgiufdsegiyvskjdfbsldfgd
Technical skills :
java,j2ee etc.,
work done:
oaugafiuadgkfjwgeuyrfvskjdfviysdvfhsdf,aviysdvwuyevfahjvshgcsvdfs,bvisdhvfhjsvjdfvshjdvhfjvxjhfvhjsdbvfkjsbdkfg
Me gustaría extraer solo los nombres de los encabezados, como Educación, Habilidades Técnicas, etc.
el código es:
with open("aks.txt") as infile, open("fffm",''w'') as outfile:
copy = False
for line in infile:
if line.strip() == "Technical Skills":
copy =True
elif line.strip() == "Workdone":
copy = True
elif line.strip() == "Education":
copy = False
elif copy:
outfile.write(line)
fh = open("fffm.txt", ''r'')
contents = fh.read()
len(contents)
Si está seguro de que los nombres de los títulos aparecen antes de dos puntos (:), puede escribir una expresión regular para buscar dicho patrón.
import re
with open("aks.txt") as infile:
for s in re.finditer(r''(?<=/n).*?(?=:)'',infile.read()):
print s.group()
La salida será como
Education
Technical skills
work done
Para obtener solo los títulos de su archivo de texto, puede usar lo siguiente:
import re
with open(''aks.txt'') as f_input:
headings = re.findall(r''(.*?)/s*:'', f_input.read())
print headings
Esto mostraría lo siguiente:
[''Education'', ''Technical skills'', ''work done'']