我正在使用* python 3 ,并且有一个文本文件,我将其放入一个字符串变量中,然后创建一个 byte数组*,如下所示:
file = open('labb9Text.txt', "r")
for lines in file:
txt = str(lines)
byteArr = bytearray(txt, 'utf-8')
现在,我想在for循环之外检索该变量。我尝试这样做:
byteArr = bytearray()
file = open('labb9Text.txt', "r")
for lines in file:
txt = str(lines)
byteArr = bytearray(txt, 'utf-8')
print(byteArr)
但这不起作用,byteArr为空。我怎样才能做到这一点?
提前致谢
问题来源:stackoverflow
它可以正常运行,但仅在非常实际的意义上。为什么在运行该循环后byteArr
为空?因为在循环内,您需要依次将其设置为每一行的内容,并且最后一行必须为空。因此,您仅对最后一行获得有效结果。
您可以在循环之前正确创建一个变量byteArr
,但是在循环内部必须添加新字节,而不是替换它们。
还有一些注意事项:在文件的“ ..行”中。“``行
变量已经是一个字符串,因此,不需要“ txt = str(lines)”。使用和
来打开文件通常比较整洁,因为它还会在该代码块的末尾自动将其关闭(实际上,您在这里忘记这样做了)。
byteArr = bytearray()
with open('labb9Text.txt', "r") as file:
for lines in file:
byteArr += bytearray(lines, 'utf-8')
print (byteArr)
*实际上,这甚至可以更容易地完成,但是前提是确实不需要utf-8编码(也就是说,如果文件已经采用正确的编码): with open('labb9Text.txt', "rb") as file: byteArray = bytearray(file.read())
它根本不需要任何循环。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。