lines = len(open(filename, 'r').readlines()) //or
open(filename, 'w').writelines(lines)
Run Code Online (Sandbox Code Playgroud)
在python中这行,关闭打开的文件?如果不是如何关闭未分配给任何变量的文件?这些类型的编码也被称为"引用语义"?
Python的垃圾收集器将在您上次使用它们之后的某个时间清理打开的文件对象(这可能会立即也可能不会立即生效).最好是明确的,例如:
with open(filename, 'r') as f:
lines = len(f.readlines())
with open(filename, 'w') as f:
f.writelines(lines)
Run Code Online (Sandbox Code Playgroud)
标准CPython实现使用引用计数,并且将倾向于非常快速地清理对象.但是,其他实现(如IronPython)以不同方式处理垃圾收集,并且行为可能不同.