Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将字符串写入文本文件,然后使用numpy savetxt写入数组_Arrays_String_Python 3.x_Numpy - Fatal编程技术网

Arrays 将字符串写入文本文件,然后使用numpy savetxt写入数组

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')中显示了一个错误,因为

我目前正在尝试制作一个程序,制作一个文本文件,第一行是'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')
中显示了一个错误,因为我用“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)在同一行中