【发布时间】:2020-04-01 22:18:12
【问题描述】:
我正在使用 write() 将数组打印到将由另一个脚本读取的文件,如下所示:
file2write=open("arrays.txt",'w')
file2write.write(str(array1)+'\n')
file2write.write(str(array2))
file2write.close()
我希望每个仅占一行的数组可以被另一个脚本读取,但是当数组变大时我会得到这个:
1 [ 0. 0. 0. -0.4 0.6 0. 0. 0. 0. -0.4 0.6 -0.4 0.6 0.2
2 0. ]
3 [0.1 0.3 0.3 0.1 0.1 0.5 0.5 0.7 0.7 0.3 0.3 0.5 0.5 0.7 0.7]
如何得到这个,尽管数组的大小:
1 [ 0. 0. 0. -0.4 0.6 0. 0. 0. 0. -0.4 0.6 -0.4 0.6 0.2 0. ]
2 [0.1 0.3 0.3 0.1 0.1 0.5 0.5 0.7 0.7 0.3 0.3 0.5 0.5 0.7 0.7]
【问题讨论】:
-
你确定文件中有一个实际的换行符吗?许多文本编辑器会换行很长的行,因此它看起来可能跨越多行,但实际上只占一行。您能否尝试在您用于查看文件的编辑器中找到换行功能并将其关闭,然后重新检查您的输出?
-
Python
write()除了你给它的东西之外不会写任何东西。它不会自己添加换行符。 -
不,它是在一定大小后分割线。从脚本中读取时出现此错误。语法错误:解析时出现意外 EOF .... xblocos = literal_eval(x) .... in literal_eval node_or_string = parse(node_or_string, mode='eval') 文件“
”,第 1 行 [0.,0., 0.,-0.4,0.6,0.,0.,0.,0.,-0.4,0.6,-0.4,0.6,0.2 ^ -
这是一个 numpy 数组,我从文件中读取它是这样的: coords = open("coordenadas_blocos.txt", "r") coords = coords.readlines() x = coords[0] y = coords[1] x = re.sub("\n", "", x) x = re.sub("\s+", ",", x) x = x.replace("[,", "[") xblocos = literal_eval(x) ... y 也是一样