我有一个程序可以创建一个魔方,另一个程序应该读取此输出并确认它是一个魔方。
使用secound程序,我用
读取了第一个程序的输出array = []
for zeile in sys.stdin:
zeile = str.strip(zeile)
array.append(zeile)
这导致#(1)
['[17 24 1 8 15]', '[23 5 7 14 16]', '[ 4 6 13 20 22]', '[10 12 19 21 3]', '[11 18 25 2 9]']
我需要的是#(2)
[17 24 1 8 15]
[23 5 7 14 16]
[ 4 6 13 20 22]
[10 12 19 21 3]
[11 18 25 2 9]
由第一个程序制成。
所以我的问题是如何格式化在#(1)中获得的结果,以便获得所需的数组? (#(2))?
答案 0 :(得分:0)
我找到了解决方法
我将我从第一个程序获得的标准输入打印到一个外部文件中,然后我将其读入并进行操作,以使其满足我的需求
以下是一些代码:
data = open('magischesDreieckErzeugt.txt', 'w')
for zeile in sys.stdin:
zeile = str.strip(zeile)
print(zeile, file=data)
if zeile == 'Bitte korrigieren Sie Ihre Eingabe!':
print('Korrigieren Sie Ihre Eingabe im 1. Teil des Programms!')
quit()
else:
print(zeile)
data.close()
并阅读:
with open('magischesDreieckErzeugt.txt') as infile:
quadrat = np.fromstring( infile.read().replace('[','').replace(']', ''), sep=' ')
# bestimme da maximum des arrays und ziehe die wurzel um die länge (= höhe) des arrays zu ermitteln
x = int(np.sqrt(np.max(quadrat)))
# formatiere das array in ein x mal x array im
quadrat = np.reshape(quadrat, (-1,x))