我有一个包含以下格式行的文件
aaa=A;bbb=B;ccc=C
我想把它转换成csv格式,这样公式两边的文字将是列,分号作为行分隔符。我试过这样做
f = open("aaa.txt", "r")
with open("ccc.csv", 'w') as csvFile:
writer = csv.writer(csvFile)
rows = []
if f.mode == 'r':
single = f.readline()
lns = single.split(";")
for item in lns:
rows.append(item.replace("=", ","))
writer.writerows(rows)
f.close()
csvFile.close()
但我将每个字母作为一列,结果如下所示:
a,a,a,",",A
b,b,b,",",B
c,c,c,",",C,"
预期结果应该是
aaa,A
bbb,B
ccc,C
以下1行更改对我有效:
而不是现有的代码
这样,我就可以创建一个列表列表,作者可以很容易地读取它,这样
row
列表看起来就像[['aaa', 'A'], ['bbb', 'B'], ['ccc', 'C']]
,而不是['aaa,A', 'bbb,B', 'ccc,C']
它有助于以交互方式执行命令和打印值,或者在代码中添加调试打印(当一切正常时,这些内容将被删除或注释)。在这里您可以看到
rows
是['aaa,A', 'bbb,B', 'ccc,C']
,即3个字符串,而它应该是3个序列。你知道吗由于字符串是字符的(只读)序列
writerows
使用每个字符作为字段。你知道吗因此,您不希望用逗号(
,
)替换=
,而是希望在等号上拆分:但是csv模块需要使用
newline=''
打开输出文件才能正常运行。你知道吗所以你应该:
只需将字符串逐行写入目标文件:
输出为:
相关问题 更多 >
编程相关推荐