我想打开一个新的文本文件,然后将numpy数组保存到该文件。我写了这段代码:
foo = np.array([1,2,3])
abc = open('file'+'_2', 'w')
np.savetxt(abc, foo, delimiter=",")
我收到此错误:
TypeError Traceback (most recent call last)
<ipython-input-33-fea41927952b> in <module>()
2 model = cool
3 abc = open('file'+'_2', 'w')
----> 4 np.savetxt(abc, foo, delimiter=",")
/usr/local/lib/python3.4/site-packages/numpy/lib/npyio.py in savetxt(fname, X, fmt, delimiter, newline, header, footer, comments)
1071 else:
1072 for row in X:
-> 1073 fh.write(asbytes(format % tuple(row) + newline))
1074 if len(footer) > 0:
1075 footer = footer.replace('\n', '\n' + comments)
TypeError: must be str, not bytes
有人知道怎么了吗?
另外,我在终端中找到了一个名为file_2的空文件,但是里面没有任何内容。
编辑:我正在使用Python3.4
看来您正在使用Python3。因此,请以二进制模式(wb
)而非文本模式(w
)打开文件:
import numpy as np
foo = np.array([1,2,3])
with open('file'+'_2', 'wb') as abc:
np.savetxt(abc, foo, delimiter=",")
另外,关闭文件句柄,abc
以确保将所有内容都写入磁盘。您可以使用with
-statement来实现(如上所示)。
正如DSM所指出的,通常在使用时,np.savetxt
您将不希望在文件中写入其他任何内容,因为这样做可能会干扰np.loadtxt
以后的使用。因此,与其使用文件句柄,不如简单地将文件名作为第一个参数传递给np.savetxt
:
import numpy as np
foo = np.array([1,2,3])
np.savetxt('file_2', foo, delimiter=",")
我使用supercsv CsvBeanWriter将值写入csv文件。 示例类: 我得到的结果是: 注意
问题内容: 我一直在尝试将数组写入文件。我知道如何将整数或字符串写入文件,但是要带一个数组会使我感到困惑。我现在正在使用这个: 问题答案: 就像其他人说的那样,您可以循环遍历数组并逐个打印出元素。为了使输出显示为数字而不是您看到的“字母和符号”,您需要将每个元素转换为字符串。因此,您的代码将如下所示: 如果您只想打印类似的数组,则可以使用此衬纸替换循环:
问题内容: 我有一个示例数组如下 我想将此数组写入文件,例如我得到的文件如下 问题答案: 如果它是一个巨大的数组,并且在写入之前需要太多内存才能将其序列化为字符串,则可以使用流:
我正在尝试将以下数据写入csv文件。这些数据是employdetails name1-surname1-place1 名称4-surname4-place4 我希望输出在CSV文件上,一个在另一个下面,在单独的行上。 我写了下面的代码 -KD
问题内容: 我不知道是否有一个CSV文件的内容导入到一个记录阵列直接的方式,很多的方式是的和家庭的进口数据与R的数据帧? 还是使用然后应用类似内容的最佳方法? 问题答案: 你可以通过将 设置为逗号来使用Numpy的方法。 有关该功能的更多信息,请参见其相应的文档。
问题内容: 我认为我应该完成一项我似乎无法解决的非常简单的任务。 如何将Python字典写入csv文件?我想要的只是将字典键写入文件的第一行,并将键值写入第二行。 我最接近的是以下内容(我是从别人的帖子中获得的): 问题是,上面的代码似乎只将密钥写入第一行,仅此而已。我没有将值写入第二行。 有任何想法吗? 问题答案: 您使用的是期望字典列表而不是字典的列表。您只想DictWriter.writer