Python 常用函数

    xiaoxiao2022-07-02  121

    程序调试技巧

    导出程序依赖库

    终端>pip freeze > requirements.txt

    把终端打印的信息保存为日志文件

    把这三行代码放在程序前

    import sys f_handler=open('out.log', 'w') sys.stdout=f_handler

    另一种方法 只是记录系统的运行信息

    #日志 import logging # 通过下面的方式进行简单配置输出方式与日志级别 logging.basicConfig(filename='logger.log', level=logging.INFO) logging.info('info message')

    设置路径

    import os path1=os.path.abspath('.') #表示当前所处的文件夹的绝对路径 path2=os.path.abspath('..') #表示当前所处的文件夹上一级文件夹的绝对路径

    修改当前路径

    (记得windows下 两个反斜杠”\")

    import os os.chdir("E:\\Academic\\Graduation thesis\\PSSP_experiment") pwd

    打印keras tensorflow版本信息

    import keras print(keras.__version__) import tensorflow print(tensorflow.__version__)

    数据操作

    多变量循环

    for i,k in zip(OTC_simple,range(len(OTC_simple))): if i !=0: Non_zero_3[otc[k]]=i

    numpy数组拼接方法concatenate介绍

    >>> a = np.array([[1, 2], [3, 4]]) >>> b = np.array([[5, 6]]) >>> np.concatenate((a, b), axis=0) array([[1, 2], [3, 4], [5, 6]]) >>> np.concatenate((a, b.T), axis=1) array([[1, 2, 5], [3, 4, 6]])

    enumerate()

    enumerate函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列

    seasons = ['Spring', 'Summer', 'Fall', 'Winter'] for i, res in enumerate(seasons): print((str(i+1))) print((str(res)))

    返回

    1 Spring 2 Summer 3 Fall 4 Winter

    rindex()

    rindex() 返回子字符串 str 在字符串中最后出现的位置,

    str1 = "this is string example....wow!!!"; str2 = "is"; print(str1.rindex(str2)) print(str1.index(str2)) 5 2

    map函数

    在Python2中map函数会返回一个list列表,如代码:

    def f(x, y): return (x, y) l1 = [ 0, 1, 2, 3, 4, 5, 6 ] l2 = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ]

    返回结果如下:

    >>> map(f, l1, l2) [(0, 'Sun'), (1, 'Mon'), (2, 'Tue'), (3, 'Wed'), (4, 'Thu'), (5, 'Fri'), (6, 'Sat')]

    但是,在Python3中返回结果如下:

    >>> map(f1, l1, l2) <map object at 0x00000000021DA860>

    如果想要得到Python2的那种结果,即返回list列表,那么必须用list作用于map,如下:

    >>> list(map(f1, l1, l2)) [(0, 'Sun'), (1, 'Mon'), (2, 'Tue'), (3, 'Wed'), (4, 'Thu'), (5, 'Fri'), (6, 'Sat')]

    dir()

    dir([object]) 会返回object所有有效的属性列表。

    type()

    type(object)返回对象object的类型。

    import Bio from Bio import SeqIO record_dict = SeqIO.to_dict(SeqIO.parse("25PDB_A_fasta.txt","fasta")) record_dict['1A1W:A|PDBID|CHAIN|SEQUENCE'].seq Out[10]: Seq('MDPFLVLLHSVSSSLSSSELTELKYLCLGRVGKRKLERVQSGLDLFSMLLEQND...HHH', SingleLetterAlphabet())

    hasattr()

    hasattr(Object,“diaplay_name”)要判断对象是否有某个属性

    多参数遍历

    for (i,k) in zip(range(3),range(3)): print(i,k)

    index()方法

    str.index(str, beg=0, end=len(string))

    数据输入输出

    在写入的TXT中换行

    如果单纯的使用换行符\n不能起到作用可以试试在换行符前加\r

    for line in words_list: file.write(line+'\r\n')

    codecs写入条件

    |w|仅写,若文件已存在,内容将先被清空| |a|仅写,若文件已存在,内容不会清空|

    with codecs.open(path, 'a', encoding='utf-8') as file: file.write(content)

    将字符串写入文件中

    with open('data.txt','w') as f: #设置文件对象 f.write(str)

    Python 数据持久化方式----JSON与Pickle

    比较: JSON是文本形式的存储,Pickle则是二进制形式(至少常用二进制) JSON是人可读的,Pickle不可读 JSON广泛应用于除Python外的其他领域,Pickle是Python独有的。 JSON只能dump一些python的内置对象,Pickle可以存储几乎所有对象。

    json

    import json obj = {'a' : 'b', 'c' : 'd'} fp = open('obj.json', 'w') json.dump(obj, fp) fp.close() s = json.dumps(obj) x = json.load(open('obj.json', 'r')) y = json.loads(s)

    json对象解析

    将已编码的 JSON 字符串解码为 Python 对象

    py_obj=json.loads(json_obj)

    pickle

    import pickle with open( 'obj.pkl', "wb") as f: pickle.dump(obj, f) with open(pkl_file_name, "rb") as f: data_obj=pickle.loads(f)

    pkl文件正确打开方式

    import pickle with open('./Data/embedding/word2vec.pkl', 'wb') as file_w: pickle.dump(word_dict, file_w) print(file_w.name)

    其他

    词性标注:jieba.posseg.cut()

    import jieba.posseg as pseg words = pseg.cut("我爱北京天安门") for word, flag in words: print('%s, %s' % (word, flag)) 我, r 爱, v 北京, ns 天安门, ns
    最新回复(0)