掌桥专利:专业的专利平台
掌桥专利
首页

文件处理方法、装置、电子设备和计算机可读介质

文献发布时间:2024-04-18 19:58:21


文件处理方法、装置、电子设备和计算机可读介质

技术领域

本发明涉及自动程序设计技术领域,尤其涉及一种文件处理方法、装置、电子设备和计算机可读介质。

背景技术

在软件开发和维护过程中,经常需要对大量的文件进行扫描、检测和修改。特别是在数据库迁移或语法转换的场景中,需要将某种数据库的代码转换成另一种数据库的代码,如将Oracle SQL语句转换成MySQL SQL语句。

传统的方法是通过人工方式逐个对文件进行查找和修改,这种方式主要存在以下技术问题:

1、处理大量文件时工作量非常庞大,需要耗费较长时间,导致工作效率低下。

2、准确性难以保证:人工处理容易出错,可能会漏掉某些文件或内容,造成处理的不准确性。

3、缺乏灵活性和定制性:现有工具(如sed和grep)虽然能进行文本处理,但对于特定规则的匹配、替换和记录功能有限,无法灵活加载配置文件和调用函数。

发明内容

有鉴于此,本发明实施例提供一种文件处理方法、装置、电子设备和计算机可读介质,以解决效率低下、工作量大而且容易出错的技术问题。

为实现上述目的,根据本发明实施例的一个方面,提供了一种文件处理方法,包括:

从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地;其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容或者正则表达式、替换内容、函数名,所述函数文件包括至少一个函数;

扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置;

判断是否需要调用函数;若否,则以所述替换内容替换所述待替换内容;若是,则调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

可选地,调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容,包括:

从所述替换内容中提取出捕获组,调用所述函数文件中所述函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值;

以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容;

以所述更新后的替换内容替换所述待替换内容。

可选地,所述规则还包括直接替换标识和替换建议;

以所述替换内容替换所述待替换内容,包括:

判断所述直接替换标识是否为真;

若是,则以所述替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中。

可选地,所述规则还包括直接替换标识和替换建议;

以所述更新后的替换内容替换所述待替换内容,包括:

判断所述直接替换标识是否为真;

若是,则以所述更新后的替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述更新后的替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中。

可选地,判断是否需要调用函数,包括:

对于每条规则,判断所述规则中是否配置了函数名,从而判断是否需要调用函数。

可选地,所述方法还包括:

更新本地的所述配置文件中的所述规则文件和/或所述函数文件;

将更新后的所述配置文件上传至所述管理平台,作为最新版本的配置文件。

可选地,从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地,包括:

从管理平台获取配置文件的版本号,将从所述管理平台获取的配置文件的版本号与存储在本地的配置文件的版本号进行比较,判断所述存储在本地的配置文件是否为最新版本;

若否,则从所述管理平台获取最新版本的配置文件,并将所述最新版本的配置文件存储至本地。

另外,根据本发明实施例的另一个方面,提供了一种文件处理装置,包括:

获取模块,用于从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地;其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容或者正则表达式、替换内容、函数名,所述函数文件包括至少一个函数;

扫描模块,用于扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置;

处理模块,用于判断是否需要调用函数;若否,则以所述替换内容替换所述待替换内容;若是,则调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

可选地,所述处理模块还用于:

从所述替换内容中提取出捕获组,调用所述函数文件中所述函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值;

以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容;

以所述更新后的替换内容替换所述待替换内容。

可选地,所述规则还包括直接替换标识和替换建议;

所述处理模块还用于:

判断所述直接替换标识是否为真;

若是,则以所述替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中。

可选地,所述规则还包括直接替换标识和替换建议;

所述处理模块还用于:

判断所述直接替换标识是否为真;

若是,则以所述更新后的替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述更新后的替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中。

可选地,所述处理模块还用于:

对于每条规则,判断所述规则中是否配置了函数名,从而判断是否需要调用函数。

可选地,所述装置还包括配置模块,用于:

更新本地的所述配置文件中的所述规则文件和/或所述函数文件;

将更新后的所述配置文件上传至所述管理平台,作为最新版本的配置文件。

可选地,所述获取模块还用于:

从管理平台获取配置文件的版本号,将从所述管理平台获取的配置文件的版本号与存储在本地的配置文件的版本号进行比较,判断所述存储在本地的配置文件是否为最新版本;

若否,则从所述管理平台获取最新版本的配置文件,并将所述最新版本的配置文件存储至本地。

根据本发明实施例的另一个方面,还提供了一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。

上述发明中的一个实施例具有如下优点或有益效果:因为通过采用正则表达式从文件中匹配出待替换内容以及待替换内容在文件中的位置,判断是否需要调用函数,若否,则以替换内容替换待替换内容,若是,则调用函数文件中函数名对应的函数,并以替换内容和函数的返回值替换待替换内容的技术手段,所以克服了现有技术中效率低下、工作量大而且容易出错的技术问题。本发明实施例可以实现自动化扫描文件并根据配置文件处理文件内容,而且通过动态加载配置文件和函数调用,增强了灵活性和定制性,从而大大减少人工处理的工作量,提高处理效率和准确性。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是根据本发明实施例的文件处理方法的流程图;

图2是根据本发明一个可参考实施例的文件处理方法的流程图;

图3是根据本发明另一个可参考实施例的文件处理方法的流程图;

图4是根据本发明再一个可参考实施例的文件处理方法的流程图;

图5是根据本发明实施例的文件处理装置的示意图;

图6是本发明实施例可以应用于其中的示例性系统架构图;

图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要说明的是,本发明的技术方案中,所涉及的用户个人信息的采集、分析、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且接受监管部门的监督管理。应当对用户个人信息采取必要措施,以防止对此类个人信息数据的非法访问,确保有权访问个人信息数据的人员遵守相关法律法规的规定,确保用户个人信息安全。一旦不再需要这些用户个人信息数据,应当通过限制甚至禁止数据收集和/或删除数据的方式将风险降至最低。

当适用时,包括在某些相关应用程序中,通过对数据去标识来保护用户隐私,例如在适用时通过移除特定标识符(例如,姓名、年龄、性别、出生日期等)、控制所存储数据的量或特异性、控制数据如何被存储、和/或其他方法去标识。

图1是根据本发明实施例的文件处理方法的流程图。作为本发明的一个实施例,如图1所示,所述文件处理方法可以包括:

步骤101,从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地;其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容或者正则表达式、替换内容、函数名,所述函数文件包括至少一个函数。

首先,从管理平台获取最新版本的配置文件,并将最新版本的配置文件存储至本地,并对规则文件进行解析,将每条规则文件读取至内存,以供后续使用,并将函数文件动态导入。其中,所述配置文件包括规则文件和函数文件,规则文件可以是config.ini文件,函数文件可以是Subs.pm文件。所述规则文件中配置有至少一条规则,所述规则包括正则表达式和替换内容,或者,所述规则包括正则表达式、替换内容和函数名。所述函数文件中配置有至少一个函数,比如Perl语言中Sub函数。需要说明的是,每个函数与规则中的函数名对应。可选地,所述规则还包括直接替换标识和替换建议。

可选地,管理平台是基于GitLab的管理平台,配置文件由GitLab管理,可实现多人协作,不断地添加、更新配置文件,可以通过Perl语言实现远程配置文件读取,并将获取的配置文件存储至本地。

在本发明的实施例中,规则文件为ini格式,所述规则可以包含以下几个关键字:

regex:正则表达式,用于匹配待替换内容。

replace:替换内容。

Sub:函数名,用于处理捕获组的函数的名称。

direct:直接替换标识,direct为true时直接替换,direct为false时需要确认后再替换。

suggest:替换建议,包括需要替换的待替换内容和替换后的替换内容。

例如,一条规则中包含如下内容:

regex_oracle_nextval=([a-z_A-Z]+).NEXTVAL

replace_mysql=NEXTVAL($1)

direct=true

sub_nextval=dealNextVal

suggest_suggest=Deal the Oracle NEXTVAL function

步骤102,扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置。

可以通过Perl语言获取指定目录下的所有文件列表并扫描每个文件,对于每个文件,将文件读取至内存中,遍历规则,查看该规则中的正则表达式,是否能从该文件中匹配出待替换内容,若是,则记录待替换内容在该文件中的位置,比如第几行、第几个字符开始、第几个字符结束。

具体地,对于每个文件,读取规则文件中的规则,针对每条规则,扫描该文件的内容并采用该规则中的正则表达式从该文件中匹配出所有的待替换内容和各个待替换内容在所述文件中的位置。

步骤103,判断是否需要调用函数;若否,则执行步骤104;若否,则执行步骤105。

可选地,判断是否需要调用函数,包括:对于每条规则,判断所述规则中是否配置了函数名,从而判断是否需要调用函数。具体地,判断规则中是否有sub字段并且该字段的值为函数名,从而判断是否需要调用函数。如果规则中有sub字段并且该字段的值为函数名,则判定需要调用函数(需要调用该函数名对应的函数),反之,则判定不需要调用函数。

步骤104,以所述替换内容替换所述待替换内容。

可选地,以所述替换内容替换所述待替换内容,包括:判断所述直接替换标识是否为真;若是,则以所述替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述替换内容保存到日志文件中;若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中。如果规则包括正则表达式、替换内容、直接替换标识和替换建议,则先判断直接替换标识是否为真(true),如果直接替换标识为true,则直接以所述替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述替换内容保存到日志文件中,如果直接替换标识为假(false),则将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中,由开发人员确认后再进行替换。

步骤105,调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置后,判断是否需要调用函数,如果不需要调用函数,则直接以规则中的替换内容替换采用正则表达式匹配出的待替换内容,如果需要调用函数,则调用函数文件中对应的函数,从而得到所述函数的返回值,然后以规则中的替换内容和函数的返回值替换采用正则表达式匹配出的待替换内容。

可选地,调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容,包括:从所述替换内容中提取出捕获组,调用所述函数文件中所述函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值;以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容;以所述更新后的替换内容替换所述待替换内容。如果需要调用函数,则从替换内容中提取出捕获组,调用函数文件中函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值,然后以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容,最后以更新后的替换内容替换文件中的待替换内容。

可选地,以所述更新后的替换内容替换所述待替换内容,包括:判断所述直接替换标识是否为真;若是,则以所述更新后的替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述更新后的替换内容保存到日志文件中;若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中。如果规则包括正则表达式、替换内容、函数名、直接替换标识和替换建议,则先判断直接替换标识是否为真(true),如果直接替换标识为true,则直接以所述更新后的替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述更新后的替换内容保存到日志文件中,如果直接替换标识为假(false),则将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中,由开发人员确认后再进行替换。

本发明实施例采用正则表达式进行文件内容的匹配,并且可以根据规则文件中的函数名和捕获组调用相应的函数进行处理,这一灵活的正则匹配和函数调用机制使得代码修改过程具有更大的适应性和扩展性。

根据上面所述的各种实施例,可以看出本发明实施例通过采用正则表达式从文件中匹配出待替换内容以及待替换内容在文件中的位置,判断是否需要调用函数,若否,则以替换内容替换待替换内容,若是,则调用函数文件中函数名对应的函数,并以替换内容和函数的返回值替换待替换内容的技术手段,解决了现有技术中效率低下、工作量大而且容易出错的技术问题。本发明实施例可以实现自动化扫描文件并根据配置文件处理文件内容,而且通过动态加载配置文件和函数调用,增强了灵活性和定制性,从而大大减少人工处理的工作量,提高处理效率和准确性。

图2是根据本发明一个可参考实施例的文件处理方法的流程图。作为本发明的又一个实施例,如图2所示,所述文件处理方法可以包括:

步骤201,从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地。

其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容、直接替换标识和替换建议,或者,所述规则包括正则表达式、替换内容、函数名、直接替换标识和替换建议,所述函数文件包括至少一个函数。

步骤202,获取指定目录下的所有文件列表并扫描每个文件。

步骤203,判断是否有未扫描的文件;若是,则执行步骤204;若否,则结束。

获取指定目录下的所有文件列表并扫描每个文件,对于每个文件,重复执行步骤204-步骤211。

步骤204,扫描文件的内容。

步骤205,判断是否有未匹配的规则;若是,则执行步骤206;若否,则执行步骤203。

获取存储在本地的配置文件,读取规则文件中的规则,对于每条规则,重复执行步骤206-211。

步骤206,采用规则中的正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置。

步骤207,判断是否需要调用函数;若是,则执行步骤208;若否,则执行步骤209。

步骤208,调用所述函数文件中所述函数名对应的函数。

以任意一条规则为例,采用该条规则中的正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置,然后判断该条规则中是否配置了函数名(比如以"sub_"开头的行),若是,则执行步骤208,若否,则执行步骤209。

步骤209,判断规则中的直接替换标识是否为真;若是,则执行步骤210;若否,则执行步骤211。

在步骤209中,判断该条规则中的直接替换标识是否为真(true),如果直接替换标识为true,则执行步骤210,如果直接替换标识为假(false),则执行步骤211。

步骤210,执行替换。

如果不需要调用函数,则直接以该条规则中的替换内容替换从所述文件中匹配出待替换内容。

如果需要调用函数,则从所述该条规则的替换内容中提取出捕获组,调用所述函数文件中所述函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值,然后以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容,最后以所述更新后的替换内容替换所述待替换内容。

步骤211,写入日志文件。

将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中,或者,将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中。

日志文件记录可以用于后续查看和分析,帮助用户跟踪代码修改历史和审查建议内容。开发人员可以根据日志文件检查替换的内容是否正确,开发人员也根据替换建议进行人工替换。这一优点使得开发人员能够更好地管理代码修改过程,及时发现问题并进行修正,从而提升代码质量和可维护性。

本发明实施例能够扫描指定目录下的文件并根据配置文件中的规则进行匹配和替换操作,从而实现代码的自动修改,由此减少了人工操作的工作量,提高了处理效率和准确性。而且,本发明实施例通过动态加载配置文件和函数调用,增强了灵活性和定制性,能够自动处理大量文件并准确记录修改建议,提高处理效率和准确性。

另外,在本发明一个可参考实施例中文件处理方法的具体实施内容,在上面所述文件处理方法中已经详细说明了,故在此重复内容不再说明。

图3是根据本发明另一个可参考实施例的文件处理方法的流程图。作为本发明的另一个实施例,如图3所示,所述文件处理方法可以包括:

步骤301,从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地。

其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容、直接替换标识和替换建议,或者,所述规则包括正则表达式、替换内容、函数名、直接替换标识和替换建议,所述函数文件包括至少一个函数。

步骤302,扫描文件并采用正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置。

步骤303,判断是否需要调用函数;若否,则执行步骤304;若否,则执行步骤305。

步骤304,以所述替换内容替换所述待替换内容。

步骤305,调用函数文件中函数名对应的函数,并以替换内容和函数的返回值替换所述待替换内容。

步骤306,更新本地的所述配置文件中的所述规则文件和/或所述函数文件。

步骤307,将更新后的所述配置文件上传至所述管理平台,作为最新版本的配置文件。

开发人员检查配置文件是否需要更新,如果需要,则更新本地的配置文件,比如更新规则文件和/或函数文件,更新后的规则文件通过config.ini文件来保存,更新后的函数文件通过Subs.pm文件来保存。

需要指出的是,步骤306和步骤307也可以在步骤302之前执行,在该实施例中,先更新本地的配置文件,然后基于更新后的配置文件执行步骤302-步骤305。如果没有更新配置文件的需求,则直接执行步骤302-步骤305。

本发明通过加载配置文件来指定正则表达式和替换内容,使得代码修改的规则可以灵活配置和定制化。同时,本发明还提供了远程获取配置文件并与本地同步更新的功能,通过加载配置文件,用户可以灵活配置和定制化代码修改的规则,以适应不同的项目需求,而且简化了配置文件的更新过程,提高了操作的便捷性。这一优点使得开发人员能够轻松地更新和管理代码修改规则,保持其与最新的需求和标准的一致性。

综上所述,本发明实施例提供的文件处理方法具有减少工作量、提高处理效率、灵活配置和定制化、简化配置文件更新、方便日志文件记录和建议生成等优点,这些优点与本发明旨在解决的技术问题和目标相对应,使得开发人员能够更快速、高效地进行代码修改,提升软件开发的效率和质量。

另外,在本发明另一个可参考实施例中文件处理方法的具体实施内容,在上面所述文件处理方法中已经详细说明了,故在此重复内容不再说明。

图4是根据本发明再一个可参考实施例的文件处理方法的流程图。作为本发明的另一个实施例,如图4所示,所述文件处理方法可以包括:

步骤401,从管理平台获取配置文件的版本号。

步骤402,将从所述管理平台获取的配置文件的版本号与存储在本地的配置文件的版本号进行比较,判断所述存储在本地的配置文件是否为最新版本;若否,则执行步骤403;若是,则执行步骤404。

步骤403,从所述管理平台获取最新版本的配置文件,并将所述最新版本的配置文件存储至本地。

其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容、直接替换标识和替换建议,或者,所述规则包括正则表达式、替换内容、函数名、直接替换标识和替换建议,所述函数文件包括至少一个函数。

步骤404,扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置。

步骤405,判断是否需要调用函数;若否,则执行步骤406;若否,则执行步骤407。

步骤406,以所述替换内容替换所述待替换内容。

步骤407,调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

另外,在本发明再一个可参考实施例中文件处理方法的具体实施内容,在上面所述文件处理方法中已经详细说明了,故在此重复内容不再说明。

图5是根据本发明实施例的文件处理装置的示意图。如图5所示,所述文件处理装置500包括获取模块501、扫描模块502和处理模块503;其中,获取模块501用于从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地;其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容或者正则表达式、替换内容、函数名,所述函数文件包括至少一个函数;扫描模块502用于扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置;处理模块503用于判断是否需要调用函数;若否,则以所述替换内容替换所述待替换内容;若是,则调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

可选地,所述处理模块503还用于:

从所述替换内容中提取出捕获组,调用所述函数文件中所述函数名对应的函数并将所述捕获组作为所述函数的参数,从而得到所述函数的返回值;

以所述函数的返回值替换所述替换内容中的捕获组,从而得到更新后的替换内容;

以所述更新后的替换内容替换所述待替换内容。

可选地,所述规则还包括直接替换标识和替换建议;

所述处理模块503还用于:

判断所述直接替换标识是否为真;

若是,则以所述替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述替换内容和所述替换建议保存到日志文件中。

可选地,所述规则还包括直接替换标识和替换建议;

所述处理模块503还用于:

判断所述直接替换标识是否为真;

若是,则以所述更新后的替换内容替换所述待替换内容,并将所述待替换内容在所述文件中的位置、所述待替换内容和所述更新后的替换内容保存到日志文件中;

若否,则将所述待替换内容在所述文件中的位置、所述待替换内容、所述更新后的替换内容和所述替换建议保存到日志文件中。

可选地,所述处理模块503还用于:

对于每条规则,判断所述规则中是否配置了函数名,从而判断是否需要调用函数。

可选地,所述装置还包括配置模块,用于:

更新本地的所述配置文件中的所述规则文件和/或所述函数文件;

将更新后的所述配置文件上传至所述管理平台,作为最新版本的配置文件。

可选地,所述获取模块501还用于:

从管理平台获取配置文件的版本号,将从所述管理平台获取的配置文件的版本号与存储在本地的配置文件的版本号进行比较,判断所述存储在本地的配置文件是否为最新版本;

若否,则从所述管理平台获取最新版本的配置文件,并将所述最新版本的配置文件存储至本地。

需要说明的是,在本发明所述文件处理装置的具体实施内容,在上面所述文件处理方法中已经详细说明了,故在此重复内容不再说明。

图6示出了可以应用本发明实施例的文件处理方法或文件处理装置的示例性系统架构600。

如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。

需要说明的是,本发明实施例所提供的文件处理方法一般由服务器605执行,相应地,所述文件处理装置一般设置在服务器605中。本发明实施例所提供的文件处理方法也可以由终端设备601、602、603执行,相应地,所述文件处理装置可以设置在终端设备601、602、603中。

应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、扫描模块和处理模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:从管理平台获取最新版本的配置文件,并将所述配置文件存储至本地;其中,所述配置文件包括规则文件和函数文件,所述规则文件包括至少一条规则,所述规则包括正则表达式、替换内容或者正则表达式、替换内容、函数名,所述函数文件包括至少一个函数;扫描文件并采用所述正则表达式从所述文件中匹配出待替换内容以及所述待替换内容在所述文件中的位置;判断是否需要调用函数;若否,则以所述替换内容替换所述待替换内容;若是,则调用所述函数文件中所述函数名对应的函数,并以所述替换内容和所述函数的返回值替换所述待替换内容。

作为另一方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。

根据本发明实施例的技术方案,因为通过采用正则表达式从文件中匹配出待替换内容以及待替换内容在文件中的位置,判断是否需要调用函数,若否,则以替换内容替换待替换内容,若是,则调用函数文件中函数名对应的函数,并以替换内容和函数的返回值替换待替换内容的技术手段,所以克服了现有技术中效率低下、工作量大而且容易出错的技术问题。本发明实施例可以实现自动化扫描文件并根据配置文件处理文件内容,而且通过动态加载配置文件和函数调用,增强了灵活性和定制性,从而大大减少人工处理的工作量,提高处理效率和准确性。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 三维模型处理方法和装置、电子设备、计算机可读存储介质
  • 语音呼叫处理方法、装置、计算机可读介质及电子设备
  • 图像处理方法和装置、电子设备、计算机可读存储介质
  • 视频处理方法、装置、电子设备和计算机可读介质
  • 可执行文件处理方法、装置、电子设备和计算机可读介质
  • 文件处理方法、装置、电子设备及计算机可读存储介质
技术分类

06120116483119