首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中写入csv文件时处理字符串

如何在python中写入csv文件时处理字符串
EN

Stack Overflow用户
提问于 2013-08-28 15:40:58
回答 1查看 501关注 0票数 1

我正在尝试在csv文件中写入我的列表字符串中有两个值,int,这是我的代码

代码语言:javascript
复制
prod = [['Enveloppes Esquisse adh\xe9sives', 1.85], 
        ['Enveloppes adh\xe9sives Esquisse', 1.1], 
        ['Enveloppes adh\xe9sives Esquisse', 1.1], 
        ['Enveloppes adh\xe9sives Esquisse', 1.85], 
        ['Pochettes kraft Esquisse', 0.95], 
        ['Pochettes kraft Esquisse', 1.75]]

cw = csv.writer(open("nv.csv", 'w'), delimiter=';')
    cw.writerow(['Produit', 'Prix'])
    for row in prod:
        cw.writerow( [row[0],row[1]] )

但是我得到了行中的“enveloppes”,然后在另一行中使用esquisse,而不是一行中的所有字符串,谁能帮助我?我的csv文件应该包含两行,一行是'Enveloppes adh\xe9sives‘,另一行是'1,85’。

EN

回答 1

Stack Overflow用户

发布于 2013-08-28 15:53:06

文档中写道:

csv模块不直接支持读写Unicode,但它是8位的,除了ASCII字符的一些问题。因此,只要避免像UTF-16这样使用NULs的编码,您就可以编写函数或类来为您处理编码和解码。建议使用UTF-8。

由于您的字符串是cp1250cp1252 (我从示例中看不出来)编码的字节字符串,而不是unicode字符串,这应该是可以的。你应该在二进制模式下打开你的文件:

代码语言:javascript
复制
import io
import csv
prod = [['Enveloppes Esquisse adh\xe9sives', 1.85],
        ['Enveloppes adh\xe9sives Esquisse', 1.1],
        ['Enveloppes adh\xe9sives Esquisse', 1.1],
        ['Enveloppes adh\xe9sives Esquisse', 1.85],
        ['Pochettes kraft Esquisse', 0.95],
        ['Pochettes kraft Esquisse', 1.75]
        ]

with io.open('nv.csv', 'wb') as f:
    writer = csv.writer(f, delimiter=';')
    writer.writerow(['Produit', 'Prix'])
    for row in prod:
        writer.writerow(row)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18481986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档