开发者社区> 问答> 正文

如何将文本追加到字节数组

我正在使用* 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

展开
收起
is大龙 2020-03-24 21:41:54 510 0
1 条回答
写回答
取消 提交回答
  • 它可以正常运行,但仅在非常实际的意义上。为什么在运行该循环后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

    2020-03-24 21:42:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载