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()。非常感谢你!!!我是新来的,想知道如何选择你的答案。