Lassen Sie uns heute einen Blick darauf werfen, wie Python zur Verarbeitung von Excel-Dateien verwendet wird. Dies wird bei uns häufig mit dem CSV-Modul berücksichtigt.
1. Verwenden Sie Python, um CSV-Dateien zu lesen:
CSV ist ein durch Kommas getrenntes Format. Die von uns generierten Formate sind xls und xlsx. Es wird ein Fehler gemeldet:
Fehler: Zeile enthält NULL-Byte
Insun-Lösung: Die Fehlerursache besteht darin, die execl-Datei mit dem Suffix xls direkt in csv umzubenennen Speichern Sie es als CSV-Datei, es wird kein Fehler gemeldet
Beispielsweise haben wir eine CSV-Datei wie diese:
#!/usr/bin/env python # -*- coding:utf-8 -*- import csv with open('egg.csv','rb') as f: reader = csv.reader(f) for row in reader: print row
Der Ausdruck sieht aus so: list
['a' , '1', '1', '1']
['a', '2', '2', ' 2']
['b', '3' , '3', '3']
['b', '4', '4', '4']
['b', '5', '5' , '5']
['b', '6', '6', '6']
['c', '7', '7', '7' ]
['c', '8', '8', '8']
['c ', '9', '9', '9']
['c', '10', '10', '10']
['d', '11 ', '11', '11']
[ 'e', '12', '12', '12']
['e', '13', '13 ', '13']
['e', '14', '14', '14']
2. Verwenden Sie Python zum Schreiben und CSV generieren
#!/usr/bin/env python # -*- coding:utf-8 -*- import csv with open('egg2.csv', 'wb') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['a', '1', '1', '2', '2']) spamwriter.writerow(['b', '3', '3', '6', '4']) spamwriter.writerow(['c', '7', '7', '10', '4']) spamwriter.writerow(['d', '11','11','11', '1']) spamwriter.writerow(['e', '12','12','14', '3'])
Was auf diese Weise gespeichert wird, ist, dass es in einer Spalte gespeichert wird, was sich von unserer ursprünglichen Absicht, in 5 Spalten zu speichern, unterscheidet.
Wenn Sie Pythons CSV verwenden, um eine mit Excel kompatible CSV-Datei zu generieren, geschieht dies hauptsächlich beim Erstellen der Parameter des Writers Dialect='excel'
Der Code muss wie folgt geändert werden:
#!/usr/bin/env python # -*- coding:utf-8 -*- import csv with open('egg2.csv', 'wb') as csvfile: spamwriter = csv.writer(csvfile,dialect='excel') spamwriter.writerow(['a', '1', '1', '2', '2']) spamwriter.writerow(['b', '3', '3', '6', '4']) spamwriter.writerow(['c', '7', '7', '10', '4']) spamwriter.writerow(['d', '11','11','11', '1']) spamwriter.writerow(['e', '12','12','14', '3'])