操作gzip
文件
# -*- coding: utf-8 -*-
import gzip
# 写文件
f_out = gzip.open("xxx.gz", "wb")
# 读文件
# f_in = gzip.open("xxx.gz", "rb")
for line in open("yyy.txt", "rb"):
f_out.write(line)
f_out.close()
re
模块的常用方法
re.split()
https://www.jianshu.com/p/41939d338ccb
re.findall()
#字符串a如下,从中提取出DP4后面跟着的4个数字。
a = 'SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0.5;AN=2;DP4=1,1,0,1;MQ=11'
dp4 = re.findall(r'DP4=(\d+),(\d+),(\d+),(\d+)',a)[0]
#用re.findall返回一个列表,其中每匹配上一次,返回一个数组,这里用`[0]`表示只要列表里的第一项,dp4为一个数组,通过索引可以得到其中的每一个值。
#\S 匹配任意非空字符
#\w 匹配任意字母,包括下划线
#\d 匹配任意数字
# * 前一个匹配规则执行0次或多次
# + 前一个匹配规则执行至少1次或多次
# ? 前一个匹配规则执行0次或1次
# 非贪婪匹配,匹配尽可能短的结果,例如
a = 'ID=Solyc00g160260.1.1;Parent=Solyc00g160260.1;' #提取ID编号
#贪婪匹配:
res = re.findall(r'ID=(\S+);', a)[0]
# 此时 res = Solyc00g160260.1.1;Parent=Solyc00g160260.1
#非贪婪匹配:
res = re.findall(r'ID=(\S+?);', a)[0]
# 此时 res = Solyc00g160260.1.1
获取某一目录下的所有目录文件
import os
files = os.listdir('/lustre/home/jiayuxin/99-data/13-etuber.transcriptom/2-5_tissues/clean_data/')
print(files)
#files此时是一个列表,里面包含./clean_data/下一层目录的所有文件
通过python执行linux命令并获取运行结果
import os
# 通过 os.system() 在命令行中执行命令
os.system('cat 1.txt')
# os.system() 只能运行命令,不能获取命令的运行结果。
# 通过 os.popen() 执行命令并获取运行结果
a = os.popen('cat 1.txt')
# 命令执行的结果会存放在 a 中,此时 a 是一个可迭代变量,通过循环可以读出内容。
网友评论