python3 常用操作

操作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)
    line = str(line, encoding = "utf8")  # bytes to str
    print(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 是一个可迭代变量,通过循环可以读出内容。

你可能感兴趣的:(python3 常用操作)