创建列表后关闭文件> text = open(“path / file.ext”)。read()。split()

时间:2013-09-17 07:15:16

标签: python list file-io split

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

它应该被关闭,但是请注意with语句更加pythonic并且使用起来更好,因为即使出现错误,也可以保证关闭文件:

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