将python字符串列表转换为字节码,以便写入文件
我正在尝试训练一个Keras模型(LipNet),开始训练时,它打开一个带有将python字符串列表转换为字节码,以便写入文件,python,arrays,file,keras,byte,Python,Arrays,File,Keras,Byte,我正在尝试训练一个Keras模型(LipNet),开始训练时,它打开一个带有wb的文件,并尝试写入列表中包含的标题。但是,我得到了这个错误: File "c:\users\fahim\documents\lipnet\lipnet\lipreading\callbacks.py", line 77, in on_train_begin csvw.writerow(['Epoch', 'Samples', 'Mean CER', 'Mean CER (Norm)', 'Mean WER',
wb
的文件,并尝试写入列表中包含的标题。但是,我得到了这个错误:
File "c:\users\fahim\documents\lipnet\lipnet\lipreading\callbacks.py", line 77, in on_train_begin
csvw.writerow(['Epoch', 'Samples', 'Mean CER', 'Mean CER (Norm)', 'Mean WER', 'Mean WER (Norm)', 'Mean BLEU', 'Mean BLEU (Norm)'])
TypeError: a bytes-like object is required, not 'str'
我查找了这个问题,并尝试了许多建议,例如在字符串前面放置b
csvw.writerow([b'Epoch', b'Samples', b'Mean CER', b'Mean CER (Norm)', b'Mean WER', b'Mean WER (Norm)', b'Mean BLEU', b'Mean BLEU (Norm)'])
并尝试将列表转换为字节码
>>>bytes([1,2,3])
b'\x01\x02\x03'
>>>bytes(["a", "b"])
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
bytes(["a", "b"])
TypeError: 'str' object cannot be interpreted as an integer
顺便说一下,如果有帮助的话,代码也会使用pickle。
csvw
如何以字节码写入行?csv
总是想要文本文件,而不是二进制文件,但您可以尝试通过这样做来模拟:
with open(os.path.join(self.output_dir, 'stats.csv'), 'w', encoding='utf-8', newline=''):
谢谢,这解决了这里的问题,尽管还有另一个
TypeError:cannotpickle\u thread.lock objects
这是一个不同的、不相关的错误。你试过谷歌搜索吗?
with open(os.path.join(self.output_dir, 'stats.csv'), 'w', encoding='utf-8', newline=''):