python - 使用单个字符串写入 CSV 每行返回 1 个字符
问题描述
我一直在尝试将数据写入 csv 文件。我一直在将代码从 java 转换为 python,这里是 python 代码:
def resultsToCSVStr(results):
output = "Episode No.,"
for run in results:
output += "Run" + str(run) + "steps,"
for time in range(len(results[0])):
output += "\n" + str(time) + ","
for run in range(len(results)):
output += "" + str(results[run][time]) + ","
return output
def resultsToCSVFile(results, experimentName):
resultsTable = resultsToCSVStr(results)
#print(resultsTable)
with open("out/" + experimentName + "/" + experimentName + "_stepsToGoal.csv", mode='w') as out:
writer = csv.writer(out, delimiter="\n")
writer.writerows(resultsTable)
预期输出的形式为:
EpisodeNo.,Run0steps,Run1steps,Run2steps,Run3steps,Run4steps,Run5steps,Run6steps,Run7steps,Run8steps,Run9steps,
0,98,100,100,97,100,100,100,100,100,100,
1,14,34,37,40,47,45,29,56,31,31,
2,37,30,12,29,29,20,22,31,29,24,
3,10,10,16,8,16,10,16,8,10,10,
4,16,8,16,8,12,49,8,8,14,14,
但是实际输出是
乙
p
一世
s
○
d
e
ñ
○
.
,
R
你
n
[
以此类推为整个结果。当我打印出结果表时,它会正确地返回它,所以问题出在最后 3 行。当我从第一个函数中删除“\n”时,它仍然输出相同的结果,所以这甚至不是问题的一部分。
非常感谢任何帮助,谢谢!
编辑
我变了:
writer.writerows(resultsTable)
至
writer.writerow(resultsTable)
而且它改变了输出,它仍然是同样的问题,但输出不再有目瞪口呆了。我不认为这真的改变了任何东西,但认为 id add。
解决方案
尝试csv.writer(out, delimiter=",")
改用 od 分隔符 '\n'。原因分隔符是连续两个单元格之间的符号。您也根本不需要函数 resultsToCSVStr。只需将 resultsTable = resultsToCSVStr(results) 更改为 resultsTable = results。但首先,以这种方式在行上划分结果:
row_len = 3 # Or any row length you want
answer = []
tmp = []
for i, s in enumerate(result[0]):
tmp.append(s)
if (i + 1) % row_len == 0:
answer.append(tmp)
tmp = []
answer.append(tmp)
result = answer
推荐阅读
- reactjs - 单击时更改区域颜色(react-simple-maps)
- django - 在 Windows 10 上,Django 未在项目文件夹下正确安装 - 无法找到 manage.py
- c# - 可以使用 linq2db 添加自定义列吗?
- amazon-web-services - 如何在 Ubunutu 上 pip 安装 mtcnn
- twilio - TWILIO:使用“evaluateWorkerAttributes”过滤任务队列导致超时错误
- python - 来自 Kafka 的未知 KafkaError 87
- java - Spring Boot 应用程序在 Eureka 服务器中显示为 UNKNOWN
- git - 如何判断我做了 git pull 多久了
- c - C中的TCP IP套接字通信。在客户端退出期间,提示服务器?
- vba - 有没有办法将excel工作表复制到onedrive中的多个工作簿?