python包-re-time-random-collections-argparse

多个比较简单的 python 包的备忘录。

re

多个分隔符拆分字符串

内置的 split() 函数只能有一个分隔符,可以采用 re 模块的 split 函数,可以采用多个分隔符,用 | 分开

1
2
import re
re.split(';|:', text)

time

打印软件运行开始和结束时间如下

1
2
3
4
5
6
begin_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Start time: {}\n".format(begin_time))


end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Finish time: {}\n".format(end_time))

random

shuffle

shuffle 可以将列表中的元素随机排列(原地操作

1
2
3
4
import random
list1 = list(range(10))
random.shuffle(list1)
print(list1)

输出为

1
[0, 4, 5, 6, 7, 2, 3, 8, 9, 1]

collections

defaultdict

可以设置字典的值的默认格式,比如列表

1
2
from collections import defaultdict
dict1 = defaultdict(list)

Counter

字典的值默认为 0,起到计数功能

1
2
3
from collections import Counter
dict1 = Counter()
dict1["a"] += 1

统计最常见的数(计数最多的键),使用 most_common([n]) 函数,其中的参数为输出键值对数目(如果省略则输出全部元素)。

1
2
3
from collections import Counter
dict1 = Counter('abracadabra')
dict1.most_common(3)

输出为

1
[('a', 5), ('b', 2), ('r', 2)]

OrderedDict

有序字典

1
2
from collections import OrderedDict
dict1 = OrderedDict()

argparse

第一步,创建解析步骤

1
2
import argparse
parser = argparse.ArgumentParser(prog = '', description='Process some integers.')
  • prog : 程序名称,默认为 sys.argv[0]
  • description :是对整个程序的说明,会打印在帮助文档的开头

第二步,添加参数

1
2
parser.add_argument("-r", "--raw", required=True, 
help='''the raw file generated from plink software''')

每一个参数单独设置,参数名称可以设置为缩写(-h)和全称(–help),也可以同时设置。

重要参数设定解释:

  • type

    参数类型,默认为str , 也可以设置为 float 或 int 。

  • choices

    指定参数值的范围,必须事先指定 type

    举个例子,这里是设置 -x 参数必须是从1到3的某个整数

    1
    parser.add_argument('-x', type=int, choices=range(1, 4))

    如果输入的参数不在这个范围内,则报错

    1
    2
    usage: [-h] {1,2,3}
    : error: argument x: invalid choice: 4 (choose from 1, 2, 3)
  • required

    是否为必选参数,默认为True (仅针对可选选项)

  • default

    该参数未出现时的默认值(感觉应该配合required = False ,联合使用)

  • help

    帮助的解释信息

第三步,解析参数

1
2
args = parser.parse_args()
print(args.gpus)

实际例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#coding=utf-8
import argparse

parser = argparse.ArgumentParser(description='do sth')

# 添加参数步骤
parser.add_argument("-r", "--raw", required=True,
help='''the raw file''')
parser.add_argument("-i", "--id", required=True,
help='''id file''')
parser.add_argument("-p", "--pedigree", required=True,
help='''the pedigree file''')
parser.add_argument("-c", "--choose", required=False,
help='''a list file''')


# 解析参数步骤
args = parser.parse_args()
print(args.raw)
print(args.id)
print(args.pedigree)
print(args.choose)

参考文献

  1. Python-argparse-命令行与参数解析
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2024 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信