gpt4 book ai didi

python - 使用 csv 模块将列表元素写入 python 中的 csv 文件中的字段

转载 作者:行者123 更新时间:2023-12-01 01:33:15 25 4
gpt4 key购买 nike

我有一个文本文件BM.txt,内容如下所示:

*A0 0194 7F9E 00 0001 B7AB A0 0194 7F9E 00 0001 B7BE A0 0194 7F9E 00 0001  B7CD A0 0194 7F9E 00 0001 B7D4*

在我的代码中:我想用 26 个字符分隔元素。每个 26 个字符的元素都是列表中的一个元素:

import csv #import csv modul using writerows function 
#csv docs https://docs.python.org/3/library/csv.html

#open the file with the string element to seperate bm elements.
file = open("BM.txt", "r")
c = file.read()
#list comp that seperates the elements by 26 charackters each
neue_liste = [c[i:i+26] for i in range(0, len(c), 26)]

#creating a new file with the bm elements as comma seperated values
with open('briefmarken.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(neue_liste)
file.close()

列表理解的结果看起来很有希望:

['A0 0194 7F9E 00 0001 B7AB ', 'A0 0194 7F9E 00 0001 B7BE ', 'A0 0194 7F9E 00 0001 B7CD ',.....]

但是当我最终使用 writerow() 函数写入列表时。csv 中的内容如下所示:

A,0, ,0,1,9,4, ,7,F,9,E, ,0,0, ,0,0,0,1, ,B,7,A,B, 
A,0, ,0,1,9,4, ,7,F,9,E, ,0,0, ,0,0,0,1, ,B,7,B,E,
A,0, ,0,1,9,4, ,7,F,9,E, ,0,0, ,0,0,0,1, ,B,7,C,D,
....

确实,这对于我的工作来说已经足够好了,但我想知道为什么每个字符现在都用逗号分隔?我正在查看帖子和 csv 文档,但我不明白。

也许有人可以回答这个问题。

提前致谢

最佳答案

您正在使用 csv.writerows 编写字符串列表,它会写入行。

该函数接受可迭代对象的可迭代对象。因此,当传递字符串列表时,您满足了输入,但这不是您所期望的:字符串被视为可迭代对象,并且被逐个字符地分割。

要写入所有数据,每行 1 个字符串,请使用:

writer.writerows([x] for x in neue_liste)

(嗯,csv 模块在这种情况下几乎没有用,最好在文件句柄上使用 writelines)

要将所有数据写入一行,请使用 writerow (注意最后缺少 s):

writer.writerow(neue_liste)

尽管评论明智地建议您要根据空格再次分割字符串,然后使用:

writer.writerows(x.split() for x in neue_liste)

writer.writerows(map(str.split,neue_liste))

关于python - 使用 csv 模块将列表元素写入 python 中的 csv 文件中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52616281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com