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
内容概要:文章以“智能网页数据标注工具”为例,深入探讨了谷歌浏览器扩展在毕业设计中的实战应用。通过开发具备实体识别、情感分类等功能的浏览器扩展,学生能够融合前端开发、自然语言处理(NLP)、本地存储与模型推理等技术,实现高效的网页数据标注系统。文中详细解析了扩展的技术架构,涵盖Manifest V3配置、内容脚本与Service Worker协作、TensorFlow.js模型在浏览器端的轻量化部署与推理流程,并提供了核心代码实现,包括文本选择、标注工具栏动态生成、高亮显示及模型预测功能。同时展望了多模态标注、主动学习与边缘计算协同等未来发展方向。; 适合人群:具备前端开发基础、熟悉JavaScript和浏览器机制,有一定AI模型应用经验的计算机相关专业本科生或研究生,尤其适合将浏览器扩展与人工智能结合进行毕业设计的学生。; 使用场景及目标:①掌握浏览器扩展开发全流程,理解内容脚本、Service Worker与弹出页的通信机制;②实现在浏览器端运行轻量级AI模型(如NER、情感分析)的技术方案;③构建可用于真实场景的数据标注工具,提升标注效率并探索主动学习、协同标注等智能化功能。; 阅读建议:建议结合代码实例搭建开发环境,逐步实现标注功能并集成本地模型推理。重点关注模型轻量化、内存管理与DOM操作的稳定性,在实践中理解浏览器扩展的安全机制与性能优化策略。
基于Gin+GORM+Casbin+Vue.js的权限管理系统是一个采用前后端分离架构的企业级权限管理解决方案,专为软件工程和计算机科学专业的毕业设计项目开发。该系统基于Go语言构建后端服务,结合Vue.js前端框架,实现了完整的权限控制和管理功能,适用于各类需要精细化权限管理的应用场景。 系统后端采用Gin作为Web框架,提供高性能的HTTP服务;使用GORM作为ORM框架,简化数据库操作;集成Casbin实现灵活的权限控制模型。前端基于vue-element-admin模板开发,提供现代化的用户界面和交互体验。系统采用分层架构和模块化设计,确保代码的可维护性和可扩展性。 主要功能包括用户管理、角色管理、权限管理、菜单管理、操作日志等核心模块。用户管理模块支持用户信息的增删改查和状态管理;角色管理模块允许定义不同角色并分配相应权限;权限管理模块基于Casbin实现细粒度的访问控制;菜单管理模块动态生成前端导航菜单;操作日志模块记录系统关键操作,便于审计和追踪。 技术栈方面,后端使用Go语言开发,结合Gin、GORM、Casbin等成熟框架;前端使用Vue.js、Element UI等现代前端技术;数据库支持MySQL、PostgreSQL等主流关系型数据库;采用RESTful API设计规范,确保前后端通信的标准化。系统还应用了单例模式、工厂模式、依赖注入等设计模式,提升代码质量和可测试性。 该权限管理系统适用于企业管理系统、内部办公平台、多租户SaaS应用等需要复杂权限控制的场景。作为毕业设计项目,它提供了完整的源码和论文文档,帮助学生深入理解前后端分离架构、权限控制原理、现代Web开发技术等关键知识点。系统设计规范,代码结构清晰,注释完整,非常适合作为计算机相关专业的毕业设计参考或实际项目开发的基础框架。 资源包含完整的系统源码、数据库设计文档、部署说明和毕
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值