美文网首页python基因组学
python3 管道流操作

python3 管道流操作

作者: caokai001 | 来源:发表于2020-04-12 10:42 被阅读0次

    参考链接:

    1. 关于io.TextIOWrapper 学习
    2. 如何用 Python 执行单行命令 -生信菜鸟团
    3. python3-cookbook
    4. Biopython-cn

    平时对于文本处理,可以选择sed,grep ,复杂一点awk ,再复杂一些哟Python. python 和linux 一样,也可以支持单行命令来操作!格式:

    python -c <command>  
    ## -c cmd : program passed in as string (terminates option list)
    ## terminates option list 表示 -c 之后的其它选项不起作用,为终极选项
    

    -c 之后,要用双引号将命令包起来,import;结尾,命令用[]括起来,多行命令用多个[]

    • 第一个例子:不区分单双引号

      (base) [09:59:01] kcao@localhost:~
      $ python -c "print('hello world')"
      hello world
      (base) [09:59:01] kcao@localhost:~
      $ python -c 'print("hello world")'
      hello world
      
    • 接受echo 输入流;

      必须加上read方法,sys.stdin 和f=open("...","r") 一样,需要f.read() 才可以读取文件内容.

    $ echo "ck" |python -c "import sys;print(sys.stdin)"
    <_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
    
    
    $ echo "ck" |python -c "import sys;print(sys.stdin.read())"
    ck
    
    • 读取文件,计算fa文件的G碱基数目
    $ cat > test.fa
    
    >chr_1
    ATCGTCGaaAATGAANccNNttGTA
    AGGTCTNAAccAAttGggG
    >chr_2
    ATCGAATGATCGANNNGccTA
    AGGTCTNAAAAGG
    >chr_3
    ATCGTCGANNNGTAATggGA
    AGGTCTNAAAAGG
    >chr_4
    ATCGTCaaaGANNAATGANGgggTA
    

    python 单行命令,调用Biopython包

    $ cat test.fa |python -c "import sys;from Bio import SeqIO;[print(seq_record.id,seq_record.seq.count('G')) for seq_record in SeqIO.parse(sys.stdin,'fasta')]"
    chr_1 8
    chr_2 8
    chr_3 8
    chr_4 4
    
    • 类似grep 操作,输出大于号的行.
    $ cat test.fa | python -c "import sys,re;[sys.stdout.write(line) for line in sys.stdin if re.search('>', line)]"
    >chr_1
    >chr_2
    >chr_3
    >chr_4
    
    • 类似sed 操作. 去掉>chr_.
    $ cat test.fa | python -c "import sys,re;[sys.stdout.write(re.sub('>chr_', '', line)) for line in sys.stdin]"
    1
    ATCGTCGaaAATGAANccNNttGTA
    AGGTCTNAAccAAttGggG
    2
    ATCGAATGATCGANNNGccTA
    AGGTCTNAAAAGG
    3
    ATCGTCGANNNGTAATggGA
    AGGTCTNAAAAGG
    4
    ATCGTCaaaGANNAATGANGgggTA
    

    相关文章

      网友评论

        本文标题:python3 管道流操作

        本文链接:https://www.haomeiwen.com/subject/brlvmhtx.html