Python 常用函数

程序调试技巧

导出程序依赖库

终端>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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值