首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Julia迭代器,解析文件中的每一行

Julia迭代器,解析文件中的每一行
EN

Stack Overflow用户
提问于 2021-05-02 00:08:01
回答 1查看 49关注 0票数 2

我是Julia的新手,并且已经遇到了一些我认为应该是常见情况的事情:

我想要一个迭代器,解析一个文本文件一次一行。因此,与eachline(f)类似,除了对每一行都应用了一个函数parse之外。如果愿意,可以调用结果eachline(parse, f) (就像带有额外函数参数的open版本):在eachline上映射parse

更具体地说:我有一个函数poset(s::String),它将偏序集的字符串表示形式转换为偏序集:

代码语言:javascript
复制
function poset(s::String)
    nums = split(s)
    ...
    return transitiveclosure(g)
end

现在我想说一些像这样的话

代码语言:javascript
复制
open("posets7.txt") do f
    for p in eachline(poset, f)
        #something
    end
end

(我特别需要它是一个迭代器:我的文件相当大,所以我真的想一次解析一行)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 03:19:20

在这种情况下,我想我(个人)会使用Iterators.map

代码语言:javascript
复制
open("posets7.txt") do f
    for p in Iterators.map(poset, eachline(f))
        # do something
    end
end

但是,正如文档所指出的(您自己也发现了),这等同于使用generator expression

代码语言:javascript
复制
open("posets7.txt") do f
    for p in (poset(x) for x in eachline(f))
        # do something
    end
end
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67348301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档