如何连接多行由\

2024-03-28 11:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想筛选以RUN开头并用\e分隔的行

RUN install-repository \
    "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2" \
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools" \
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes"

RUN ...

在我得到的那一刻

RUN install-repository \
RUN install-repository \
...

代码如下:

import urllib2

def run():

    file_url = "https://raw.githubusercontent.com/bgruening/docker-recipes/master/galaxy-exom-seq/Dockerfile"

    data = urllib2.urlopen(file_url)

    for line in data:
        if line.startswith("RUN"):
            print line.rstrip()

if __name__ == '__main__':
    run()

最好的方法是什么?你知道吗


Tags: installrunnamehttpurlrepositorylinesection
3条回答

试试这个:

>>> commands = []
>>> a = StringIO.StringIO("RUN aaa\nRUNafas\nRUNaaa\n")
>>> for line in a:
...     if line.startswith("RUN"):
...         commands.append(line.rstrip())
... 
>>> print " \\\n".join(commands)
RUN aaa \ 
RUNafas \
RUNaaa

没有看到这个答案被接受,所以我会尝试一下。你知道吗

from urllib import urlopen
import re

def run():
    re1 = '^RUN'
    re2 = '^    " url'
    file_url = "https://raw.githubusercontent.com/bgruening/docker-recipes/master/galaxy-exom-seq/Dockerfile"
    data = urlopen(file_url)
    for line in data:
        if re.search(re1, line) or re.search(re2, line):
            print(line.rstrip('\\\n'))

if __name__ == '__main__':
    run()

我想我会明白的。你知道吗

可以使用以下内容生成串联行的列表:

lines = []
for line in open('runtest.txt'):
    if s and line.startswith('RUN'):
        lines.append(s)
        s = ''
    s += line.rstrip('\\\n')

例如,使用runtest.txt

RUN install-repository \
    " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"

RUN install-repository \
    " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"

RUN install-repository \
    " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools" \
    " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"

你会得到:

RUN install-repository     " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"
RUN install-repository     " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"
RUN install-repository     " url http://toolshed.g2.bx.psu.edu/ -o iuc  name gatk2  panel-section-name GATK2"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name suite_samtools_0_1_19  panel-section-name SAMTools"     " url http://toolshed.g2.bx.psu.edu/ -o devteam  name freebayes  panel-section-name Freebayes"

相关问题 更多 >