我想设置写入文本文件的numpy数组的每个元素的字符长度
我目前得到的输出是:
99941 1 56765 56767 51785 51793 0 0 0 0
101150 1 59006 59005 51782 51783 0 0 0 0
正如您在上面的例子中看到的,随着数字的增加,列被移动。在
但在理想情况下,输出应如下所示:
^{pr2}$有没有什么方法可以固定numpy数组中每个元素的字符长度,以便它在考虑元素字符长度后从右向左写入元素,并保持列格式不变?在
这是我正在处理的代码片段。在
def calculate(self, ElementNum1, ElementNum2):
Angle = Function().Transformation(ElementNum1, ElementNum2)
ElementInfo = Shell().getElement(ElementNum2)
Card1 = np.array([0,0,0,0,0,0,0,0,0,0])
Card1.itemset(0,(ElementInfo[0]))
Card1.itemset(1,(ElementInfo[1]))
Card1.itemset(2,(ElementInfo[2]))
Card1.itemset(3,(ElementInfo[3]))
Card1.itemset(4,(ElementInfo[4]))
Card1.itemset(5,(ElementInfo[5]))
return str(Card1)
def AngleSolution1(self,ElementPair):
Pair = np.genfromtxt(ElementPair, dtype=int, comments='None', delimiter=', ')
row = int(Pair.size/2)
p = mp.Pool(processes=4)
result = [p.apply_async(AngleCalculateFunction().calculate, args=(Pair[i][0], Pair[i][1])) for i in range(0, int(row/4))]
Result = open('Angles.csv', "a")
Result.write('\n'.join(map(str, ((((p.get()).replace('[','')).replace(']','')) for p in result))))
Result.write('\n')
Result.close()
p.close()
由于我错误地使用了多处理,因此存在某些性能问题,但这超出了本文讨论的范围。在
np.savetxt
一次格式化一行,并将其写入打开的文件。在实际上,它正在做(使用打印而不是文件写入插图的目的):
^{pr2}$或者,如果您想在一个字符串中收集所有行,可以将它们附加到一个列表中:
Python对象显示(
str(...)
)通常执行这种行追加和连接。在你可以这样做:
这样可以得到如下输出:
^{pr2}$%-10s
部分指定该列的宽度应为10个字符,并用空格填充其余字符。一点警告:这会在每一行的末尾打印出很多额外的空格。在相关问题 更多 >
编程相关推荐