gpt4 book ai didi

python - 将列表内容写入单个 csv 列

转载 作者:行者123 更新时间:2023-11-30 22:53:06 25 4
gpt4 key购买 nike

我正在尝试将列表的内容写入 csv 文件中的单列。虽然我过去已经这样做过,但我无法让这个脚本工作。相反,我填充了所有列而不是行

#getting values for p vlue of 1%-100%        
a = [numpy.arange(.01,1.01,.01)]
for i in a:
with open("GFOLD_Hisat2.csv", 'wb') as file3:
filewriter = csv.writer(file3)
filewriter.writerow(score(list1, list2, i))

其中score()是输出整数的函数

关于我应该修改什么有什么想法吗?

最佳答案

忽略 list1list2 是什么的问题(如果 score() 返回单个整数,它们是无关紧要的),我认为问题出在你的循环结构上。

而不是

for i in a:
with open("GFOLD_Hisat2.csv", 'wb') as file3:
filewriter = csv.writer(file3)
filewriter.writerow(score(list1, list2, i))

你可能想要

with open("GFOLD_Hisat2.csv", 'wb') as file3:
filewriter = csv.writer(file3)
for i in a:
filewriter.writerow((score(list1, list2, i),))

目前,您正在打开文件并为 i 的每个值创建一个新的编写器。请注意,我已将 score 的结果转换为 tuple

In [8]: a = [1,2,3,4,5]
In [9]: with open('a.csv', 'wt') as f:
wr = csv.writer(f)
for i in a:
wr.writerow((i,))
...:
In [10]: !cat a.csv
1
2
3
4
5

我也不确定为什么您要使用'wb'打开文件

正如 Rob 指出的那样,您可以只使用推导式 - 完全避免循环。我的回答重点是解释您现有代码中的错误。

此外,如果您的输出文件实际上只包含单个列,则没有理由使用 csv.writer。只需执行以下操作

a = [1,2,3,4,5]
b = [score(list1, list2, i) for i in a]
with open('a.csv','wt') as f:
f.writelines('\n'.join(map(str,b))

关于python - 将列表内容写入单个 csv 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314633/

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