Pregunta uniendo solo líneas con espacios en python


Tengo los datos a continuación ... donde puedes ver espacios entre 2 líneas al principio y sin espacios entre otras líneas:

Report Area

Total Population

Total Land Area
(Square Miles)

Population Density 
(Per Square Mile)


Report Area 37,325,068 155,738.02 239.67 
Alameda County, CA 1,515,136 738.82 2,050.75 
Alpine County, CA 1,197 738.13 1.62 
Amador County, CA 37,764 594.43 63.53 
Butte County, CA 220,101 1,636.03 134.53 
Calaveras County, CA 45,507 1,019.74 44.63 
Colusa County, CA 21,329 1,150.43 18.54 

Necesito el resultado final así:

Report Area  Total Population  Total Land Area(Square Miles)  Population Density(Per Square Mile)

Report Area 37,325,068 155,738.02 239.67 
Alameda County, CA 1,515,136 738.82 2,050.75 
Alpine County, CA 1,197 738.13 1.62 
Amador County, CA 37,764 594.43 63.53 
Butte County, CA 220,101 1,636.03 134.53 
Calaveras County, CA 45,507 1,019.74 44.63 
Colusa County, CA 21,329 1,150.43 18.54 

He intentado usar output = " ".join(line.strip( ) for line in f) pero no funciona como lo necesito.

este es mi resultado:

Report Area  Total Population  Total Land Area (Square Miles)  Population Density (Per Square Mile)   Report Area 37,325,068 155,738.02 239.67 Alameda County, CA 1,515,136 738.82 2,050.75 Alpine County, CA 1,197 738.13 1.62 Amador County, CA 37,764 594.43 63.53

todas las líneas en una sola línea ..


6
2017-11-12 06:20


origen


Respuestas:


    import re
p = re.compile(ur'\n\n|\n(?=[^\n]*\n\n)', re.IGNORECASE)
test_str = u"Report Area\n\nTotal Population\n\nTotal Land Area\n(Square Miles)\n\nPopulation Density \n(Per Square Mile)\n\n\nReport Area 37,325,068 155,738.02 239.67 \nAlameda County, CA 1,515,136 738.82 2,050.75 \nAlpine County, CA 1,197 738.13 1.62 \nAmador County, CA 37,764 594.43 63.53 \nButte County, CA 220,101 1,636.03 134.53 \nCalaveras County, CA 45,507 1,019.74 44.63 \nColusa County, CA 21,329 1,150.43 18.54 "
subst = u" "

result = re.sub(p, subst, test_str)

Puedes probar via re.


1
2017-11-12 07:22



Usando la comprensión de lista condicional:

output = os.linesep.join(line for line in f if " " in line)

1
2017-11-12 06:32



Preguntas populares