图书馆报纸记到单自动生成研究

2019-01-08 03:16辛海滨
电脑知识与技术 2019年33期
关键词:图书馆

辛海滨

摘要:报纸是图书馆馆藏的重要组成部分,但由于缺乏系统支持等原因,报纸的日常管理比较复杂。该文通过采用Python语言和第三方Excel操作模

xlwt研究自动生成报纸记到单,用以进行报纸的管理,能够有效降低管理成本,提高工作效率。

关键词:图书馆;报纸记到单;Python;自动生成

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2019)33-0041-02

报纸是一种主要的连续出版物,具有内容丰富、出版周期短、传播速度快和时效性强等特点,是图书馆馆藏文献的重要组成部分。我国报纸种类繁多,2017年,全国共出版报纸1884种。各图书馆根据自身职责和需求,都会订购不同数量的报纸并陈列于报纸阅览室供读者查阅,这为图书馆的报纸管理工作提出了挑战。

图书馆报纸的管理不同于图书和期刊。图书经分编、加工后即可完成人藏,期刊的出版周期通常为月、双月、旬和季等,到刊后即可完成系统记到。但报纸存在出版频率快、订购的种类多、上架及时性要求高、缺乏系统支持等因素的影响,使得其管理更加复杂。报纸因其内容的新闻性、大众性等特点,成为公共图书馆文献采购中重要的类型,如2016年厦门图书馆采购中文报纸213种。每日到馆的大量报纸需及时记到后,才能进行人藏、上架阅览、催缺等工作。当前,大多数图书馆业务管理系统如Interlib、ILAS等都没有进行报纸日常管理的模块。通过制作报纸记到表,进行手工记到管理是一种报纸管理有效的方法。工作实践中,图书馆通常采用Excel列出报纸名称和日期等,按出版周期制作记到表。但是图书馆订购报纸种类多,且各种报纸出版周期不一,给制作报纸记到表造成了困难。研究开发软件自动生成报纸记到单,帮助工作人员从复杂的推算、编制过程中解放出来,具有实践意义,能够有效提升记到单制作的准确率,提高工作效率。

本文应用Python语言和第三方Excel操作模块xlwt,在充分了解、分析实际工作中报纸管理需求的基础上,开发报纸记到单自动生成软件。

1技术介绍和需求分析

Python语言诞生于1989年,是一种面向对象、解释型计算机程序设计语言。Pvthon语法简洁、功能强大、支持跨平台操作且易于学习。它是一种开放的语言,拥有完备的标准库,以及大量开发者开发的第三方模块,这些都为Python提供了强大的功能。

xlwt模块是第三方Excel文档写入模块,支持Excel文档创建以及指定表单、指定单元格的格式化写入操作。datetime模块和calendar模块都是python内置的处理日期和时间的模块。datetime模块提供了大量处理日期和时间的类和方法,支持格式化输出与便捷的属性提取操作。calendar模块是日历模块,提供了标准的类和方法处理来日历,如便捷的获取特定月份的天数等。

图书馆每年订购大量的报纸,报纸的高频率出版发行以及当前大部分图书馆业务管理系统报纸管理的缺位,使得部分图书馆采用纸质记到单来管理报纸。记到单中每种报纸出版周期不同,需逐项填制,为图书馆工作造成了困难。报纸记到单的自动生成是在当年报纸订购清单的基础上,利用PYthon分析各报纸的出版周期,生成报纸记到单,实现记到单制作的自动化。

报纸文档。报纸文档是存储图书馆当年订购的所有报纸种类的格式化信息的文本文件,一种报纸为一行。文档中的报纸由序号、邮发代号、报纸名称和出版周期四项组成。序号为给定报纸的排架号。邮发代号,又称报刊代号,是邮局为了便于邮递员识别和读者订购为报刊分配的代号。出版周期是报纸的出版时间,周1-7表示每天出版、周1-6表示周一至周六出版、周2.3.5表示周二周三周五出版等等。同时,报纸文档中报纸信息内容的修改会更改记到单的输出结果。因此,当报纸名称、序号和出版周期发生变化时,可直接操作修改报纸文档信息,新生成的记到单中报纸信息就会更新为最终状态。

报纸记到单。报纸记到单是由报纸信息和应到日期组成表格,分为标题、表头和表体三部分。标题部分是记到单的名称,体现了记到单的适用日期。记到单的表头部分前面四项对应报纸的信息,分别为序号、邮发代号、报纸名称和出版周期,后面为相应日期对应的周日,如图1所示。

图1中,位于表头下方的是表体部分。表体中,报纸信息右侧部分连续的数字表示日期。日期根据报纸的出版周期选择填写,即,若当日该报纸出版则填写日期,否则不填写。这样,记到单中,有日期的单元格表示当日报纸应到,空白则表示当日报纸不出版,简洁的版面能够帮助工作人员清晰管理报纸。

2出版周期处理

首先程序读取报纸文档,生成报纸列表paper_list,进而从报纸的出版周期项生成出版周期列表,以判断特定日期,报纸是否出版。报纸文档中的出版周期为符合特定格式的文字表述,不利于计算机程序识别。以报纸列表为参数,将文字表述的出版周期转换成由报纸序号和出版日期组成的出版周期列表pubcycle_list,有利于计算机操作判断报纸出版日期。代码实现如下:

报纸记到单的表头部分为对应日期的周日。datetime模块提供的isoweekday函数能够通过日期生成对应的周日,生成的周日是用阿拉伯数字表示的,1表示周一、2表示周二等等,以此类推,这种表示方法与出版周期列表pubcycle_list的表示方法相同。

为便于工作人员清晰识别报纸的应到日期,表1所示的记到单中,在应到日期对应的单元格填写该日期,其余单元格则不填写。这就要求对特定日期判断是否出版报纸,为此,首先要通过报纸序号从出版周期列表paper_list中定位出该报纸的出版周期,然后判斷该日期对应的周日是否存在于该报纸的出版周期列表中,若存在,则返回了rue,否则,返回False。代码实现如下:

3生成记到单

生成Excel格式的记到单,采用了第三方模块xlwt提供的类和方法。首先建立Excel文档和表格,将特定月份的报纸应到信息,写入表格中。限于纸张大小,一个表格只记到半个月的信息。创建Excel文档与表格的代码如下:

新创建的表格中带有页眉和页脚内容,通过修改代码清空页眉页脚信息,或者更改为其他内容。

写入标题并进行格式设置。如图1所示,表题中的“报纸记到单”前要加上年月,以指明该记到单对应的时期。通过da-t~ime模块中today函数,获取当前日期date。记到单中,标题要居中排列,xlwt的XFStyle类提供了单元格格式的设置功能,Alignment类提供了单元格文本对齐方式的设置功能。构建对象alignment和bt_style来设置标题居中对齐。记到单中的标题占据多列,需要合并单元格,xlwt提供了write_merge函数实现多行多列的单元格合并填写内容的功能。写入标题的代码如下:

写入表体。创建的isPubDay方法实现了通过出版周期判断特定日期是否出版报纸的功能。表体的写入分为报纸信息和相应月份日期两部分,填写日期时,根据isPubDay方法的判断结果来决定是否填写。写入表体的代码如下:

row=2

4结束语

随着社会经济的发展,公共图书馆的报纸订购数量也在逐年攀升,工作人员更加依赖通过记到单标记到馆、休刊、缺报及催补等,实现报纸的便捷管理。报纸记到单的自动生成能够有效降低报纸管理成本,提升工作效率,有利于提升读者服务水平和满意度。

猜你喜欢
图书馆
图书馆