gpt4 book ai didi

python - 如何在python中获取一个小的ascii文件的内容?

转载 作者:IT老高 更新时间:2023-10-28 21:51:34 24 4
gpt4 key购买 nike

假设我们要实现 PHP 的 file_get_content 的等价物。 .

最佳做法是什么? (优雅可靠)

这里有一些命题,对吗?

使用 with 语句:

def file_get_contents(filename):
with file(filename) as f:
s = f.read()
return s

使用标准 open() 安全吗?

def file_get_contents(filename):
return open(filename).read()

两种解决方案中的文件描述符会发生什么变化?

最佳答案

在当前的 CPython 实现中,两者通常都会立即关闭文件。但是,Python 语言对第二个没有这样的保证 - 文件最终将被关闭,但在下一个 gc 循环之前可能不会调用终结器。 Jython 和 IronPython 之类的实现将像这样工作,因此最好明确地关闭文件。

我会说使用第一个解决方案是最佳实践,尽管 open 通常比 file 更受欢迎。请注意,如果您更喜欢第二个示例的简洁性,可以将其缩短一点:

def file_get_contents(filename):
with open(filename) as f:
return f.read()

上下文管理器的 __exit__ 部分将在您出于任何原因离开正文时执行,包括异常和从函数返回 - 无需使用中间变量。

关于python - 如何在python中获取一个小的ascii文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1432126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com