2016-11-08 2 views
0

So habe ich ein Skript (Python: Openpyxl outputs "None" for empty cells), die eine XLSX-Datei in eine CSV-Datei konvertiert.Python rstrip() funktioniert nicht

Eine der Zellen ist in mehreren Zeilen und enthält keine doppelten Anführungszeichen. Wenn ich rstrip() laufe, bleibt es immer noch auf mehreren Zeilen

Irgendwelche Ideen?

for rownum in sh.iter_rows(): 
       values = [("" if cell.value is None else unicode(cell.value).encode('ascii','ignore').rstrip()) 
        for cell in rownum] 
       wr.writerow(values) 

Die erste Zeile in der CSV-Datei ist:

"S. No","Summary","Question","Answer","Keywords","Product","Category","Access Level (Everyone, Help, Platinum)","Status 
Public (Customer facing) 
Private (Internal only)" 

Wie kann ich die letzte Zelle erhalten

+2

rstrip perfekt funktioniert. Es soll Standard-Whitespace-Zeichen vom Ende eines Strings entfernen, keine neuen Zeilen entfernen. – scotty3785

+1

Sie könnten .replace ('\ n', '') versuchen, um die neuen Zeilen zu entfernen. – scotty3785

Antwort

2

rstrip() die Leerzeichen am Ende der Zeichenfolge nicht nur entfernen Sie die Zeilenumbrüche in der Mitte der Strings. Gehen Sie wie folgt statt: können sagen, dass die Variablenwerte der Zeichenfolge enthält, dann:

values = ' '.join(values.strip().split('\n'))