csv作家输出b'指定编码

时间:2017-07-10 12:47:41

标签: python csv encoding

我有一系列列表对象,它们是stringint类型的不同组合。

我知道在Python2中,建议采用以下方法:

with open(my_file, 'wb') as f:...

在Python3中:

with open(my_file, 'w', newline='') as f:...

我开始在空白单元格中获取b'b' '(不在列表长度的范围之外),所以经过一些SO搜索和PyDoc读取后,我将代码更改为:

with open(my_file, 'w', newline='', encoding='utf8') as f:...

到目前为止还没有成功。空白单元格仍然可以获得上述输出的变化;我与utf8utf-8UTFUTF-8UTF8& utf-8-sig(全部来自各个SO帖子)。

我不确定如何让它像Python2方法一样工作(效果很好!)。

样本列表:

L1 = ['hello', 36, 'rr', 63, 0, 'world', (blank here), 1]

修改:显然(blank here)b' '值。

在输出时,(blank here)将是这两个输出之一。

我尝试L1 = [str(x).encode('utf-8') for x in L1],但在所有内容<{1}}之前输出<{p}}

示例代码(因为有人在没有......的情况下投票):

b'

更新

有以下工作,但是有更好的方法吗?

import csv
import shapefile # pyshp module

sf = shapefile.Reader('/path/to/a/shapefile')
my_file = '/path/to/a/csv'

with open(my_file, 'w', encoding='utf-8', newline='') as f:
    w = csv.writer(f, delimiter=',')
    for record in sf.iterRecords():
        w.writerow(record)

0 个答案:

没有答案