1

我在程序中使用了以下行。

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

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

4

2 回答 2

3

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

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

隐式使用 with 语句意味着文件将在离开范围时关闭,因此您不必担心。阅读上面的链接以获取有关其工作原理的更多信息!

于 2013-09-17T07:19:05.463 回答
2

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

with open("C:\Python27\Scripts\wordlist.txt") as myfile: # Second argument not needed. 'r' is by default
    text = myfile.read().split()
于 2013-09-17T07:17:07.247 回答