【问题标题】:closing file after creating list > text = open("path/file.ext").read().split()创建列表后关闭文件 > text = open("path/file.ext").read().split()
【发布时间】:2013-09-17 07:15:15
【问题描述】:

我在一个程序中使用了下面这行代码。

text = open("C:\Python27\Scripts\wordlist.txt", "r").read().split()

这将创建一个名为 text 的列表。我的问题是,是否还有需要关闭的打开文件?或者在这种情况下没有必要,或者可能真的不可能......我尝试通过 locals() 和 globals() 查看任何“文件”类型的对象,但没有。由于某种原因,这样的代码行会被认为是不好的做法吗?从表面上看,就我的目的而言,它似乎很方便。 (wordlist.txt 很长)

【问题讨论】:

    标签: python list file-io split


    【解决方案1】:

    是的,我会考虑这种不好的做法。处理文件时使用的最佳实践是使用with statement。然后代码看起来像这样

    with open("C:\Python27\Scripts\wordlist.txt", "r") as textfile:
        result = textfile.read.split()
    

    隐式使用 with 语句意味着文件将在离开作用域时关闭,因此您不必担心。阅读上面的链接,了解更多关于它是如何工作的信息!

    【讨论】:

      【解决方案2】:

      它应该被关闭,但请注意with 语句更 Python 并且更好用,因为它保证关闭文件,即使引发错误:

      with open("C:\Python27\Scripts\wordlist.txt") as myfile: # Second argument not needed. 'r' is by default
          text = myfile.read().split()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-26
        • 1970-01-01
        • 2023-03-26
        相关资源
        最近更新 更多