作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个类可以帮助导入特殊类型的文件,还有一个“工厂”类可以让我批量执行这些操作。工厂类使用生成器,因此客户端可以遍历导入器。我的问题是,我是否正确使用了迭代器?这是可以接受的成语吗?我刚开始使用 Python。
class FileParser:
""" uses an open filehandle to do stuff """
class BatchImporter:
def __init__(self, files):
self.files=files
def parsers(self):
for file in self.files:
try:
fh = open(file, "rb")
parser = FileParser(fh)
yield parser
finally:
fh.close()
def verifyfiles(
def cleanup(
---
importer = BatchImporter(filelist)
for p in BatchImporter.parsers():
p.method1()
...
最佳答案
您可以使一件事变得更简单:使用 with
block 代替 try
...finally
:
with open(file, "rb") as fh:
yield FileParser(fh)
这将在 with
block 离开时自动为您关闭文件。
关于python - 这是一个可接受的 pythonic 习语吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283479/
场景如下: 我将我的应用程序运行所需的几个 .xml(某种配置)文件捆绑在一个 .jar 文件中。 jar 文件具有以下结构: settings-1.0.0.jar ˪ resources/ ˪
我是一名优秀的程序员,十分优秀!