APP下载

基于Python的高校图书馆馆际互借系统的设计

2022-09-15支英浩

图书馆学刊 2022年8期
关键词:智慧图书馆模块

支英浩

[天津图书馆(天津市少年儿童图书馆),天津 300000]

1 引言

智慧图书馆的智慧化、多元化、自动化、系统化、精确度、灵敏度非传统图书馆可以比拟[1]。笔者以天津市图书馆与天津其他高校图书馆之间的馆际互借为例,采用Python编程语言设计了图书馆馆际互借系统,用数字化、精准化的办公方式实现了读者信息的收集、整理、分析、处理,也体现了服务模式从传统手工到现代化智能方向发展的转变。智慧图书馆要求智慧馆员、智慧服务,优化服务流程,以满足广大市民读者个性化、多样化的信息需求,加强服务的人文关怀。

2 传统高校馆际互借模式及改进需求分析

2.1 高校馆际互借模式简介

信息每时每刻都在以难以估量的速度增加,而信息的保存及检索对社会经济生活各个方面的发展都有着极其重要的意义。数字化信息时代改变了信息存储及检索的方式,图书馆作为信息存储及检索的重要场所,也顺应时代要求,逐渐转型

为现代意义上的智慧图书馆。但与此同时,图书馆读者对文献信息的需求也越来越多样化,各个图书馆藏书量及信息管理的方式都各不相同且有一定的局限性,这就产生了读者信息需求与馆藏资源之间的矛盾。如何平衡读者对馆藏资源的需求并解决这一矛盾,是当代智慧图书馆应关注的话题之一。馆际互借是解决上述矛盾的重要方式之一。

馆际互借指图书馆用户从其他图书馆借入文献或获取复制品的服务[2]。实现馆际互借服务便于资源共享,也是新形势下智慧馆员创新服务模式、提高服务质量的重要手段。馆际互借的模式多种多样,各不相同,取决于各成员馆之间因地制宜,根据共同需要或者协议达成的一致模式。例如有些成员馆运用CALIS①联合目录公共检索系统或CASHL②文献传递系统,成员馆通过用户注册登入方式获取所需文献资源,发送请求获取馆际互借服务;有些成员馆之间通过协议确定的原则,利用邮寄、下载、网上传输、电子邮件等方式或创建微博、微信等自媒体互动交流平台实现文献资源的馆际互借;有些成员馆则通过租用专门的服务公司实现文献的传递等。馆际互借并没有统一的模式,所谓的“传统”与“现代”也只能是特定成员馆之间馆际互借模式在时间轴上的变化。笔者所指的馆际互借范围是天津市图书馆与天津市各大高校图书馆之间,服务模式仍然是通过在市馆换取相应高校读者证的方式,但在服务方式上进行了改进,用Python编程语言实现了工作方法的创新。

2.2 传统高校馆际互借工作模式的缺点

天津市图书馆与各区县图书馆互联互通,共用一个通用的书刊查询系统,普通市民读者可以通过该系统查阅书刊的具体馆藏位置以及馆藏状态,然后到相应的馆区进行借阅。但是还有很大一部分书籍是收藏在本市各大科研院校的图书馆中,一般是通过本校图书证面向本校师生开放,所以除本校师生外,普通市民读者在市区图书馆办理的借书证无法到高校图书馆借阅书刊。在市图书馆面向读者的服务工作中有一项是高校馆际互借服务,即普通市民读者可以通过将市馆读者证换取为相应高校读者证的方式,取得相应高校图书馆的书刊借阅资格。这个过程涉及读者的姓名、读者证号、联系方式、换证院校、换证日期、归还日期、实际还证日期等信息的记录,也涉及换证超期逾期费的计算及收取等计算环节。随着时间的推移,在工作过程中逐渐暴露了以下缺点:(1)效率低,成本高。在以往的工作方式中,押证、换证全程通过人工记录读者信息实现,速度慢,且随着记录信息数量的不断增加,不仅单据冗杂,同时也可能会产生单据损坏或者丢失等情况,增加了读者的等待时间,给工作人员尤其是读者带来不必要的麻烦。(2)易产生误差。高校馆际互借有借阅超期逾期费计算模块,传统的工作方式都是通过人工推算日期,据此判断是否超期,人工计算费用,极易产生错误。(3)灵活性差。读者换证需要重新填写单据,还证需要翻阅以往借阅记录,方式繁琐,费时费力,互动性差,无形中增加了读者的等待时间。显然,这种传统手工记录的工作方法已经不能满足智能化办公的需求,更不符合智慧图书馆的发展要求。智慧时代读者服务应显示出数字化、网络化和智能化特征,以适应人们日益增长的知识服务需求,智慧时代的新思维、新理念、新技术成为读者服务从传统向现代方向变革的内在驱动力[3]。基于以上传统馆际互借方法的缺点,笔者设计了一套面向操作馆员的馆际互借系统,以期改进工作方法,提高工作效率。

3 Python简介及馆际互借系统实现方式

3.1 Python简介

Python语言是一种面向对象的计算机程序设计语言,其编程语言灵活,功能强大,最大的特点是代码简练整齐,优雅干净,并且拥有非常丰富的跨平台的标准库和第三方库[4]。Python不同于传统的C语言或者Java语言,它具有很好的解释性,相对更加便捷地编译成机器可以理解的语言。Python的代码也具有开源性,属于FLOSS(开源软件)之一,一定程度上可以对代码进行修改,更便捷、更具操作性。Python是一种脚本语言,可以应用于以下领域:Web开发、网络编程、爬虫开发、云计算开发、人工智能、自动化运维、金融分析、科学运算、游戏开发、桌面软件[5],并且可以运用在常见的操作系统中,如Windows、Linux系统以及Android平台等。利用Python强大的编程语言,通过使用OS操作系统、内置模块及自定义函数等,读者高校馆际互借系统可实现读者数据的收集整理分析,并通过引入其中的时间日期模块,科学计算逾期费用,在每个模块中设置误操作提示,建立容错机制,从而使读者高校馆际互借工作变得自动化、精准化,增强可操作性及易维护性。

该系统基于以下环境下开发:操作系统Windows 10,Python解释器版本Python 3.8.2,开发工具Pycharm,主要内置模块是OS操作系统模块以及引入time、datetime时间模块,各功能分区使用自定义函数实现读者信息的增加、删除、修改、查询、显示等操作。该系统具有以下优点:(1)易安装使用,可移植性高。通过Python编程语言形成的代码打包成系统,安装后即可单机使用。(2)对比灵活。程序体积小,每个功能模块的实现都是独立的编程语言,体现了系统高内聚、低耦合的特点,使用时直接调用相应模块功能即可,且由于Python编程语言强大的开源性、解释性,后续可根据实际工作需要修改相应功能模块的功能。(3)安全性高。区别于B/S架构(浏览器/服务器),该系统属于C/S架构(客户机/服务器),安装后即可使用,不需要依赖于网络,不受网速及其稳定性影响,在一定程度上保证了网络安全性。

3.2 功能设定及应用模块简介

在读者以市图书馆读者证换取高校图书馆读者证的过程中,工作人员需要录入一系列读者信息,如姓名、读者证号、换证院校、换证日期、实际返还日期、是否产生逾期费、联系方式等,并对这些信息进行一系列的增加、删除、修改、查询等操作,主要涉及读者信息维护模块、读者信息统计模块,以及穿插在上述两个模块中的逾期费计算功能以及容错提示功能。在系统功能设定中,需要先定义一个主函数(main()),设定系统运行的顺序,并在各个功能模块中调用相应自定义函数,实现读者信息的录入(insert())、删除(delete())、修改(modify())、查询(search())、显示(show())功能,工作人员在使用馆际互借系统过程中直接调用相应功能模块即可。系统功能设定如图1所示。

图1 系统功能设定

3.3 系统运行流程介绍

工作人员通过以下流程操作系统:(1)用户登录功能。通过账号、密码进行身份验证,登录高校馆际互借系统。(2)菜单显示。通过Python自带的内置函数print()设置主菜单。(3)功能菜单选择。在主菜单中可以通过Python自带的input()函数进行功能菜单的选择。(4)功能执行。工作人员可根据需求调用相应模块,执行相应的读者信息操作。系统运行流程如图2所示。

图2 系统运行流程

3.4 逾期费用计算模块

除上述读者基本信息的录入及维护外,还有一个重要功能模块是换证超期费用的计算。在以往的工作方式中,通过翻阅读者借还记录的日期(年月日),手动计算借还天数,这种方式不仅繁琐复杂,且人工计算日期容易有误差,具体费用也易出错,因此带来不必要的麻烦。引入Python中自带的时间日期模块import time,datetime,通过输入换证日期a,系统可以自动计算出应还日期b,后者可作为对读者还证时间的提示,再通过输入实际还证日期c,系统可以精准计算出c-a的实际天数,由此可以知道读者是否超期,若逾期,系统会自动计算出逾期费用。利用一系列的自动化精准计算,省时省力,提高效率。此功能的实现主要引入日期时间模块:

3.5 引入提示容错机制

几乎任何系统的运行都离不开容错机制,系统的运行有时会因为内部差错、死机、操作失误等原因造成不可估量的后果,而容错技术的应用在一定程度上避免了失误的发生,从而保障系统运行的安全性及可靠性。数据容错多会采用Python技术为根本运行依据,保障信息系统的运行。Py-thon技术具有开源共享、函数式编程等特点,能将数据信息库进行整合及规范化处理[6]。本馆际互借系统使用的是Python中的Pycharm开发工具,在编程语言的使用过程中本身就会提示可能产生的语句错误,并且在语句试运行时会捕捉导致程序无法运行的语句错误,给予一定的提示,这是Python内部预先自定义的一些异常类型,如IOError输入输出操作失败、SyntaxError语法错误等,从而保障编程语句的正确性,保证程序顺利运行。

编程过程中Python可以自行捕捉到语法错误,目的是保证语法的正确性以及程序运行的流畅性,但是这在保障系统的正确运行中还是远远不够的。很多时候工作人员在操作该系统时,也可能会因为手误输入错误数据,如读者姓名信息输入错误导致查找读者信息不存在,又如日期格式输入不正确、读者联系方式输入非整数或者输入数字数量不正确等,因此在该系统的设计过程中,还要自动写入数据信息异常处理模块,在工作人员操作有误时进行提示,从而保证操作的正确性。Python中用try...except...语句为系统的正确运行提供了根本保障,try...except...语句也是Python语句异常处理的最基本结构形式,当然还细分为try...except...else...结构以及try...except...finally...结构,try后面是有可能出现错误的代码,except后面是代码出现错误的原因,以此提示工作人员,再配合while True无限循环语句,直至工作人员做出正确操作为止,保证流程的正确性、规范性。在此以如下几个模块举例:

在使用查找、修改、删除、显示读者信息等功能模块时,通过Python中的遍历循环语句,利用“姓名”字段调用列表中相应的读者信息,然后再进行相关操作。当然,工作人员在用“姓名”字段对读者信息进行相关操作时,也可能会因为输入错误导致查找出错或找不到相关读者信息,此种情况下就无法进行相应的修改、删除等操作,所以在读者信息查找、修改、删除、显示等操作中也会建立相应容错提示机制,以保证操作的精确性。因篇幅原因在此不做举例。

3.6 读者信息存储调用方式

读者的信息是一一对应的形式,Python中字典的格式恰好是键值对一一对应的方式,因此可将每一个读者信息以字典的形式保存:

工作人员在对读者信息进行相应查找、修改、删除、显示的相关操作时,都是通过读者姓名调用系统中存储在列表readers_list中的信息实现相应模块功能。最终读者信息是保存在最初建立的.txt文件中,因此可在系统中导出备份,作为电子信息保存留档,方便后续的整理工作,纸质信息电子化,结果更直观,更便于操作。

4 结语

在信息时代,“信息”其实已经具象到了工作生活中的方方面面,“智慧城市”“智慧社区”“智能办公”等,其实就是各行各业将基于知识的信息用于创新,形成信息化的高级形态,从而改善生活质量、改进工作方式。在大数据时代,数字化图书馆、博物馆、档案馆平台的出现满足了人们便捷获取信息的需要,但大量的数字信息导致人们查找信息的效率低下[7]。这就需要改变传统的信息查找方式,在物联网、5G、AI等科技发展背景下,图书馆也变得越来越“智慧”,这种“智慧”不仅体现在基础设施上的智慧化,如一站式、可移动检索服务平台,同时也应体现在管理模式、服务内容上的智慧化。智慧图书馆对智慧馆员提出了新要求,单纯的学科馆员已无法适应现代化的服务模式,工作人员也应适应时代要求向智慧馆员转化,服务理念变被动为主动,服务模式变传统为现代,根据读者实时需求,增强信息的搜集整理能力,不断提高自身的素养与技能,不仅能将办公管理模式变得更加精准化、便捷化、高效化,同时也能满足读者的个性化、多元化阅读服务体验,进一步体现图书馆“以人为本”的服务理念,增强互动能力,优化服务流程。

通过Python代码编程实现的图书馆高校馆际互借系统是智慧图书馆在发展过程中的一次积极探索,也是传统手工读者服务模式转向系统化、自动化服务流程的一次实践,经测试,系统运行良好,有效地简化了工作流程,提高了工作效率,同时也提升了计算的精准度,给读者及工作人员都带来了极大的便利。当然,系统也存在一定的局限性,因Python编程代码的开源性,系统平台也会根据实际需要在后续的工作中不断进行改进。

注释:

① 中国高等教育文献保障系统China Academic Library&Information System,简称CALIS。

② 中国高等人文社会科学文献中心China Academic Social Sciences and Humanities Library,简称CASHL。

猜你喜欢

智慧图书馆模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
图书馆
有智慧的羊
去图书馆
智慧派
集成水空中冷器的进气模块
智慧决定成败
智慧往前冲,统计百分百(1)