Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für das Problem der Verwendung von Python zum Generieren verstümmelter CSV-Zeichen

Lösung für das Problem der Verwendung von Python zum Generieren verstümmelter CSV-Zeichen

高洛峰
高洛峰Original
2017-03-16 16:11:401526Durchsuche

Nachfragehintergrund

Kürzlich haben wir ein E-Mail-Tagesprogramm für das Unternehmen entwickelt. Die E-Mails bestehen normalerweise aus Formularen, Bildern und dann Anhängen. Anhänge werden im Allgemeinen standardmäßig in TXT-Dateien geschrieben, aber der PM hofft, dass die Anhänge in der E-Mail direkt mit Software wie Excel geöffnet werden können. Zuerst wollte er sie als Excel speichern, aber als er dachte, dass die Dateigröße Excel wäre um ein Vielfaches größer, die CSV-Datei wurde standardmäßig verwendet. Sie wurde auch mit Excel geöffnet, war aber immer noch eine Textdatei. Sie war klein und einfach zu speichern, also entschied ich mich schließlich, das CSV-Modul zum Speichern der Datei zu verwenden.

PythonCSV-Dateien schreiben

Python bietet ein integriertes Modul zum Lesen und Schreiben von CSV-Dateien. Ich werde es hier nicht vorstellen ist nicht schwierig, hauptsächlich um das Problem mit verstümmeltem Code zu lösen.

def save2csv(file_name=None, header=None, data=None):
"""
保存成CSV格式文件,方便Excel直接打开
:param file_name: 保存的文件名
:param header: 表头,每一列的名字
:param data: 具体填充数据
:return:
"""
if file_name is None or isinstance(file_name, basestring) is False:
raise Exception('保存CSV文件名不能为空,并且必须为字符串类型')
if file_name.endswith('.csv') is False:
file_name += '.csv'
file_obj = open(file_name, 'wb')
file_obj.write(codecs.BOM_UTF8) # 防止乱码
writer = csv.writer(file_obj)
if data is None or isinstance(data, (tuple, list)) is False:
raise Exception('保存CSV文件失败,数据为空或者不是数据类型')
if header is not None and isinstance(header, (tuple, list)) is True:
writer.writerow(header)
for row in data:
writer.writerow(row)

Hinweis: Es gibt drei Sätze, um verstümmelte Zeichen zu verhindern

file_obj = open(file_name, 'wb')
file_obj.write(codecs.BOM_UTF8) # 防止乱码
writer = csv.writer(file_obj)

Das Schreiben von codecs.BOM_UTF8 in den Header der Datei kann verstümmelte Zeichen verhindern. 8 codiert. Format

Das obige ist der detaillierte Inhalt vonLösung für das Problem der Verwendung von Python zum Generieren verstümmelter CSV-Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn