Arrays 将字符串写入文本文件,然后使用numpy savetxt写入数组
我目前正在尝试制作一个程序,制作一个文本文件,第一行是's16',之后它应该用数字填充下一行。我当前的代码如下所示:Arrays 将字符串写入文本文件,然后使用numpy savetxt写入数组,arrays,string,python-3.x,numpy,Arrays,String,Python 3.x,Numpy,我目前正在尝试制作一个程序,制作一个文本文件,第一行是's16',之后它应该用数字填充下一行。我当前的代码如下所示: import os import numpy as np file = open('workfile.txt','wb') file.write('s16\n') array=np.eye(4) np.savetxt(file, array, fmt='%.3f', newline=os.linesep) 但是这在file.write('s16\n')中显示了一个错误,因为
import os
import numpy as np
file = open('workfile.txt','wb')
file.write('s16\n')
array=np.eye(4)
np.savetxt(file, array, fmt='%.3f', newline=os.linesep)
但是这在
file.write('s16\n')
中显示了一个错误,因为我用“wb”打开了文件,这意味着我正在尝试写入字节,而“s16\n”是一个字符串。但是如果我将“wb”改为“w”,那么np.savetxt(file,wut,fmt='%.3f',newline=os.linesep)
会因为没有处于“wb”模式而引发类似的错误。有没有办法调和这两者?谢谢 对你的问题没有直接的回答,但我希望它仍然有帮助
我已经停止使用numpy编写和加载文件,而是使用pickle。
这个包比numpy更好地处理不同的数据类型和列表/数组
示例代码片段:
import pickle
f = open("myfile.txt", 'w')
pickle.dump("My string", f)
也可以将文件打开为只读或读写。我强烈推荐这个软件包。对你的问题没有直接的回答,但我希望它仍然有帮助 我已经停止使用numpy编写和加载文件,而是使用pickle。 这个包比numpy更好地处理不同的数据类型和列表/数组 示例代码片段:
import pickle
f = open("myfile.txt", 'w')
pickle.dump("My string", f)
也可以将文件打开为只读或读写。我强烈推荐此套餐。试试:
file.write(b's16\n')
在Python3中,默认的字符串类型是unicode,因此您必须使用额外的b
来标记字节字符串
savetxt
(以及load
对应项)使用字节字符串。因此,使用“wb”打开文件是正确的
检查savetxt
文档-我认为您可以给它标题行和尾行(可能仍然需要b
-除非savetxt
进行转换)。尝试:
file.write(b's16\n')
在Python3中,默认的字符串类型是unicode,因此您必须使用额外的b
来标记字节字符串
savetxt
(以及load
对应项)使用字节字符串。因此,使用“wb”打开文件是正确的
检查
savetxt
文档-我认为您可以给它标题行和尾行(可能仍然需要b
-除非savetxt
进行转换)。savetxt
以通用CSV格式写入文本。所以它的文件可以被其他程序读/写,包括电子表格<代码>pickle是特定于Python的。savetxt
以通用CSV格式写入文本。所以它的文件可以被其他程序读/写,包括电子表格<代码>pickle是Python特有的。这正是我想要的,谢谢!唯一的问题是file.write(b's16\n')似乎不创建换行符,当np.savetxt(file,array,fmt='%.3f',newline=os.linesep)运行's16'时,它与第一行或np.eye(4)在同一行中,这正是我想要的,谢谢!唯一的问题是file.write(b's16\n')似乎不创建换行符,当np.savetxt(file,array,fmt='%.3f',newline=os.linesep)运行's16'时,它与第一行或np.eye(4)在同一行中