如何将函数的返回值保存到文件中



我有一个函数,它将数组作为输入并进行一些计算。现在我想使用np.savetxt或任何其他方式将返回值保存到文本文件中。。。在做这件事的时候,我犯了错误";应为1D或2D数组,而得到%dD数组"%"X.ndim(ValueError:应为1D或2D数组,得到的是0D数组,而不是

我定义了如下函数,现在我想将返回的z值保存到一个文件中,并希望稍后将其用于不同的任务

def cal(a,b,c)
z=a+b+c
return  z
x=print(cal(a,b,c))
np.savetxt('test',x)

有人能提出解决方案吗。。。感谢

问题是,您试图将print结果保存到变量而不是函数结果中,请按如下方式编辑代码:

import numpy as np
def cal(a,b,c):
z=a+b+c
return  z
a = [1, 2]
b = [1, 2]
c = [1, 2]
x=cal(a, b, c)
np.savetxt('test',x)

以下是生成的输出文件:

1.000000000000000000e+00
2.000000000000000000e+00
1.000000000000000000e+00
2.000000000000000000e+00
1.000000000000000000e+00
2.000000000000000000e+00

如果将三个列表作为参数传递给函数,它将返回一个1D数组,以便np.savetxt可以工作。


保存到.txt文件有不同的方法,在这种情况下,您必须根据numpy函数请求格式化输出。在这里,您可以看到一个使用open方法保存文件的示例:

with open('myfile.txt', 'w') as file:
file.write('myLineToWrite')

使用with打开文件,写入后自动关闭。


您也可以使用print()函数写入文件:

with open('myfile.txt', 'w') as myFile:
print(positionStr, file=myFile, flush=False)

这是因为print()被定义为print(object(s), sep=separator, end=end, file=file, flush=flush),其中:

  • object(s):任意对象,任意数量。打印前将转换为字符串
  • sep='separator':可选。如果存在多个对象,请指定如何分离这些对象。默认值为' '
  • end='end':可选。指定要在末尾打印的内容。默认值为'n'(换行(
  • file:可选。具有写入方法的对象。默认值为sys.stdout
  • flush:可选。布尔值,指定输出是刷新(True(还是缓冲(False(。默认值为False

np.savetxt将数组保存为文本。因此,要么将结果转换为列表,然后使用:

np.savetxt('test',[x])

或者简单地将结果保存到一个常规文本文件:

with open( 'file.py', 'w' ) as datafile:
datafile.write(x)

另一种流行的方法是酸洗。

还有几件事需要注意:

您需要在定义函数后使用:。您应该使用x=cal(a,b,c),而不是将打印保存到变量中。

相关内容

  • 没有找到相关文章

最新更新