在Python中,如果您在未调用的情况下打开文件close(),或者关闭文件但未使用try- finally或" with"语句,这是一个问题吗?或者它是否足以作为编码实践依赖Python垃圾收集来关闭所有文件?例如,如果有人这样做:
for line in open("filename"):
    # ... do stuff ...
...这是一个问题,因为文件永远不会被关闭,并且可能发生一个阻止它被关闭的异常?或者它肯定会在for声明结束时关闭,因为文件超出了范围?
在python中,当我尝试在程序中稍后访问fp时,我看到fp.readlines()正在关闭文件的证据.你可以确认这种行为,如果我还想再次阅读它,我是否需要稍后再次重新打开文件?
文件已关闭吗? 是类似的,但没有回答我的所有问题.
import sys 
def lines(fp):
    print str(len(fp.readlines()))
def main():
    sent_file = open(sys.argv[1], "r")
    lines(sent_file)
    for line in sent_file:
        print line
这会返回:
20