4

テキスト ファイルを読み込んで、# で始まらないすべての行を返そうとしています。Pythonでは、リスト内包リストを簡単に使用できます

with open('file.txt') as f:
     lines = [l.strip('\n') for l in f.readlines() if not re.search(r"^#", l)]

Groovyを介して同じことを達成したいと思います。これまでのところ、以下のコードがあります。どんな助けも大歓迎です。

lines = new File("file.txt").readLines().findAll({x -> x ==~ /^#/ })
4

1 に答える 1

5

Groovy では、通常collect、リスト内包表記の代わりに使用する必要があります。例えば:

new File("file.txt").readLines().findAll({x -> x ==~ /^#/ }).
    collect { it.replaceAll('\n', '') }

readLines()既に改行が取り除かれていることに注意してください。したがって、この場合は必要ありません。

検索には、次のgrep()方法も使用できます。

new File('file.txt').readLines().grep(~/^#.*/)
于 2013-01-24T23:55:37.207 に答える