我有一系列列表对象,它们是string
和int
类型的不同组合。
我知道在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:...
utf8
,utf-8
,UTF
,UTF-8
,UTF8
& 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)