【问题标题】:Python readlines() function writing [' and \n to filePython readlines() 函数将 [' 和 \n 写入文件
【发布时间】:2014-11-21 00:28:03
【问题描述】:

所以我在这里有这段代码,我确信这对我的问题来说是微不足道的,因为它只是关于一般 readlines 的问题:

        lines = file_in.readlines()
        self.inputText.insert(1.0, lines,)

如果我要读入一个文本文件,它会这样写到一个文本文件中

['示例文本'\n']

或某种性质的东西,而不是我们真正想要的东西:

示例文本

如何避免这个问题?

【问题讨论】:

    标签: python readlines


    【解决方案1】:

    readlines() 为您提供行列表。当您尝试将列表转换为字符串时,它会为您提供括号和逗号以及repr(for-a-programmer-representation,而不是str,for-an-end-user-representation,这就是为什么你会得到每个元素的引号和\n 而不是换行符。这不是你想要的。

    可以在事后修复它,或者逐行添加每一行,但有一种更简单的方法:只需使用read(),它将整个文件作为一个整体大字符串:

    contents = file_in.read()
    self.inputText.insert(1.0, contents,)
    

    除了代码更少且更难出错之外,这意味着您不会让 Python 浪费时间将内容拆分成一堆单独的行,以便您可以将它们重新组合在一起。


    作为旁注,there's almost never a good reason to call readlines()

    【讨论】:

      【解决方案2】:

      readlines 返回行列表。要将其插入文本小部件,您可以使用换行符加入这些项目,如下所示:

      lines = file_in.readlines()
      self.inputText.insert("1.0", "\n".join(lines))
      

      【讨论】:

      • 我认为您只需要"".join(lines),因为readlines() 不会剥离线条。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多