Python 将字节列表写入文件,但某些记录丢失
我是编程新手,在写字节方面遇到了问题。以下是我写的:Python 将字节列表写入文件,但某些记录丢失,python,byte,Python,Byte,我是编程新手,在写字节方面遇到了问题。以下是我写的: file = open('filePath/input.train', 'wb') for i in range(len(myList)): file.write(bytes((myList[i]),'UTF-8')); 如果我在这里打印“I”,它是629 项目需要“.train”后缀。为了检查它,我读取它并写入一个txt文件: file = open('filePath/input.train', 'rb') content =
file = open('filePath/input.train', 'wb')
for i in range(len(myList)):
file.write(bytes((myList[i]),'UTF-8'));
如果我在这里打印“I”,它是629
项目需要“.train”后缀。为了检查它,我读取它并写入一个txt文件:
file = open('filePath/input.train', 'rb')
content = file.read()
testFile = open('filePath/test.txt', 'wb')
testFile.write(content)
现在,问题是,len(list)=629,而我在test.txt文件中得到了591行。后来它给我带来了麻烦
为什么会发生这种情况,我应该如何解决 首先,当您打开和写入文件时,需要记住在写入后关闭文件。如下所示
file = open('filePath/input.train', 'wb')
for i in range(len(myList)):
file.write(bytes((myList[i]),'UTF-8'));
file.close()
f = open('filePath/input.train', 'wb')
for line in myList:
f.write(bytes(line, 'UTF-8'))
f.close()
第二,python代码不必有“;”
第三,file
是python的关键字,所以不要使用file
作为变量名。您可以使用f
或my_file
或任何人,但不要使用python的关键字
第四,python有一个迭代器
,使用迭代器
比你的更适合范围内的i(len(xxx))
所有这些,您的代码可以如下所示
file = open('filePath/input.train', 'wb')
for i in range(len(myList)):
file.write(bytes((myList[i]),'UTF-8'));
file.close()
f = open('filePath/input.train', 'wb')
for line in myList:
f.write(bytes(line, 'UTF-8'))
f.close()
您在第二个和第三个
open
语句中遗漏了“b”。如果您使用的是二进制文件,请确保将它们作为二进制文件打开(这就是“rb”和“wb”的意思),我刚才试过这个。同样的结果。我已经更新了我的帖子。还有什么我可以试试的吗?先谢谢你,是的!它是文件.close()。非常感谢你!!!我是新来的,想知道如何选择你的答案。