CN108984141A - 一种输出重定向的方法及系统 - Google Patents
一种输出重定向的方法及系统 Download PDFInfo
- Publication number
- CN108984141A CN108984141A CN201810729587.8A CN201810729587A CN108984141A CN 108984141 A CN108984141 A CN 108984141A CN 201810729587 A CN201810729587 A CN 201810729587A CN 108984141 A CN108984141 A CN 108984141A
- Authority
- CN
- China
- Prior art keywords
- output stream
- output
- stream
- redefined
- redirection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种输出重定向的方法及系统,所述方法包括步骤屏蔽原目标,截获输出流;将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。本发明通过屏蔽原目标,来截获输出流,使输出流不再按照默认设置输出,并对输出流进行重新定义,使其在新目标中输出。在不改变原始模块执行程序的情况下,实现输出的重定向。整个无需考虑原始模块的执行程序,不会影响原始模块的功能实现,且在需要改变新目标的时候,直接对重新定义的输出流进行操作即可,节省时间、操作方便。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种输出重定向的方法及系统。
背景技术
在计算机操作系统中当中,重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如不想看到在显示器的输出而是希望输出到某一文件中,可以通过重定向的方式改变输出流的输出方向。
在改变输出流的输出方向时,需要进入原始模块,对原始模块的执行程序进行更改,将新目标加入到相应的功能语句中。在执行原始模块时,就会按照新目标将输出流输出。
现有重定向方法需要改变于是模块的执行程序,针对不同的原始模块,其执行程序往往不同,逐一进行修改需要耗费大量的时间,若要改回输出流的原目标,需要进行重复性,不利于成本的节省。
发明内容
本发明实施例中提供了一种输出重定向的方法及系统,以解决现有技术中重定向花费大量时间、成本高的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明第一方面提供了一种输出重定向的方法,包括以下步骤:
屏蔽原目标,截获输出流;
将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。
结合第一方面,在第一方面第一种可能的实现方式中,用上下文管理器,通过建立输出流与字符串IO(Input Output,输入输出)的绑定关系屏蔽原目标。
结合第一方面,在第一方面第一种可能的实现方式中,所述屏蔽原目标的具体过程为:
进入上下文管理器,初始化字符串IO对象;
将输出流存放在缓存中;
定义输出流为字符串IO对象。
结合第一方面,在第一方面第一种可能的实现方式中,将所述输出流进行重新定义具体为:退出上下文管理器时,将字符串IO对象重新定义为输出流,得到重新定义的输出流。
结合第一方面,在第一方面第一种可能的实现方式中,所述重新定义的输出流与缓存中的输出流信息一致。
结合第一方面,在第一方面第二种可能的实现方式中,所述输出流包括标准输出流和标准错误流。
本发明第二方面提供了一种输出重定向的系统,所述系统包括
信息截获模块,用于屏蔽原目标,截获输出流;
重定向模块,用于将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。
结合第二方面,在第二方面第一种可能的实现方式中,所述信息截获模块包括上下文管理器,所述上下文管理器通过建立输出流与字符串IO的绑定关系屏蔽原目标。
结合第二方面,在第二方面第一种可能的实现方式中,所述上下文管理器包括
进入单元,用于进入上下文管理器,并初始化字符串IO对象;
缓存单元,用于将输出流存放在局部变量中;
定义单元,用于定义输出流为字符串对象。
结合第二方面,在第二方面第一种可能的实现方式中,所述重定向模块包括
重定义单元,在退出上下文管理器时,将字符串IO对象重新定义为输出流,得到重新定义的输出流;
定向输出单元,将重新定义的输出流通过新目标输出。
本发明第二方面所述的输出重定向的系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、通过屏蔽原目标,来截获输出流,使输出流不再按照默认设置输出,并对输出流进行重新定义,使其在新目标中输出。在不改变原始模块执行程序的情况下,实现输出的重定向。整个无需考虑原始模块的执行程序,不会影响原始模块的功能实现,且在需要改变新目标的时候,直接对重新定义的输出流进行操作即可,节省时间、操作方便。
2、通过打开上下文管理器,将输出流与字符串IO绑定,使原目标无法识别输出流,从而屏蔽原目标,借用字符串IO灵活的实现输出流的截获,且操作方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法实施例的流程示意图;
图2是本发明所述输出流的输出流向示意图;
图3是本发明所述系统实施例的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
本发明在不改变原始模块功能实现的基础上,通过外部封装进行输出的重定向。
如图1所示,本发明的输出重定向的方法包括以下步骤:
S1,屏蔽原目标,截获输出流:
利用上下文管理器,通过建立输出流与字符串IO的绑定关系屏蔽原目标。其中原目标是指在原始模块的功能实现过程中,输出流输出的地方,通常是屏幕。输出流包括标准输出流和标准错误流。
上下文管理器屏蔽原目标的具体过程为:
S11,进入上下文管理器时,初始化字符串IO对象;
S12,将输出流存放在缓存中;
输出流在缓存中以局部变量的形式保存,将标准输出流和标注错误流存放在局部变量中。
S13,定义输出流为字符串IO对象。
将标准输出流定义为字符串IO对象,建立输出流与字符串IO的绑定关系,从而解除输出流与原目标的关联,实现输出流的截获。
S2,将所述输出流进行重新定义,通过新目标将重新定义的输出流输出:
为了不影响原始模块之外的其它模块的运行,同时为了输出与被截获输出流一致的输出信息,需要将被截获的输出流与字符串IO解除绑定,并重新与新目标建立关联。
通过推出上下文管理器实现输出流的重新定义,具体为:退出上下文管理器时,重新定义标准输出流和标准错误流为之前存放在局部变量中的值。并将重新定义的输出流存放在缓存中。
当获取到新目标时,建立重新定义的输出流与新目标的管理,直接从缓存中获取重新定义的输出流,节省时间,提高工作效率。如新目标为日志,直接将将缓存中重新定义的输出流信息写入到日志文件中去即可。
如图2所示,在未重定向的输出过程中,输出流从原始模块输出后直接通过原目标显示,采用本实施例的重定向方法后,在不改变原始模块的基础上,直接将输出流截获,按照输出流进入缓存然后通过新目标显示的过程进行。
如图3所示,本发明的输出重定向的系统包括依次连接的信息获取模块1和重定向模块2。信息截获模块1用于屏蔽原目标,截获输出流;重定向模块2用于将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。
信息截获模块包括上下文管理器,上下文管理器通过建立输出流与字符串IO的绑定关系屏蔽原目标。
信息获取模块11包括进入单元11、缓存单元12和定义单元13;进入单元11用于进入上下文管理器,并初始化字符串IO对象;缓存单元12用于将输出流存放在局部变量中;定义单元13用于定义输出流为字符串对象。
重定向模块2包括重定义单元21和定向输出单元22。重定义单元21在退出上下文管理器时,将字符串IO对象重新定义为输出流,得到重新定义的输出流;定向输出单元22将重新定义的输出流通过新目标输出。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (10)
1.一种输出重定向的方法,其特征是,包括以下步骤:
屏蔽原目标,截获输出流;
将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。
2.根据权利要求1所述的一种输出重定向的方法,其特征是,利用上下文管理器,通过建立输出流与字符串IO的绑定关系屏蔽原目标。
3.根据权利要求2所述的一种输出重定向的方法,其特征是,所述屏蔽原目标的具体过程为:
进入上下文管理器时,初始化字符串IO对象;
将输出流存放在缓存中;
定义输出流为字符串IO对象。
4.根据权利要求3所述的一种输出重定向的方法,其特征是,将所述输出流进行重新定义具体为:退出上下文管理器时,将字符串IO对象重新定义为输出流,得到重新定义的输出流。
5.根据权利要求4所述的一种输出重定向的方法,其特征是,所述重新定义的输出流与缓存中的输出流信息一致。
6.根据权利要求1所述的一种输出重定向的方法,其特征是,所述输出流包括标准输出流和标准错误流。
7.一种输出重定向的系统,其特征是,所述系统包括
信息截获模块,用于屏蔽原目标,截获输出流;
重定向模块,用于将所述输出流进行重新定义,通过新目标将重新定义的输出流输出。
8.根据权利要求7所述的一种输出重定向的系统,其特征是:所述信息截获模块包括上下文管理器,所述上下文管理器通过建立输出流与字符串IO的绑定关系屏蔽原目标。
9.根据权利要求8所述的一种输出重定向的系统,其特征是,所述信息获取模块还包括
进入单元,用于进入上下文管理器,并初始化字符串IO对象;
缓存单元,用于将输出流存放在局部变量中;
定义单元,用于定义输出流为字符串对象。
10.根据权利要求8所述的一种输出重定向的系统,其特征是,所述重定向模块包括
重定义单元,在退出上下文管理器时,将字符串IO对象重新定义为输出流,得到重新定义的输出流;
定向输出单元,将重新定义的输出流通过新目标输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810729587.8A CN108984141A (zh) | 2018-07-05 | 2018-07-05 | 一种输出重定向的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810729587.8A CN108984141A (zh) | 2018-07-05 | 2018-07-05 | 一种输出重定向的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108984141A true CN108984141A (zh) | 2018-12-11 |
Family
ID=64537140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810729587.8A Pending CN108984141A (zh) | 2018-07-05 | 2018-07-05 | 一种输出重定向的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984141A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006089052A2 (en) * | 2005-02-16 | 2006-08-24 | Nms Communications Corporation | Methods and apparatus for delivering services |
CN1892586A (zh) * | 2005-06-28 | 2007-01-10 | 惠普开发有限公司 | 集中式可热插拔的视频控制器与改向逻辑单元 |
CN105373734A (zh) * | 2014-09-01 | 2016-03-02 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
-
2018
- 2018-07-05 CN CN201810729587.8A patent/CN108984141A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006089052A2 (en) * | 2005-02-16 | 2006-08-24 | Nms Communications Corporation | Methods and apparatus for delivering services |
CN1892586A (zh) * | 2005-06-28 | 2007-01-10 | 惠普开发有限公司 | 集中式可热插拔的视频控制器与改向逻辑单元 |
CN105373734A (zh) * | 2014-09-01 | 2016-03-02 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
Non-Patent Citations (1)
Title |
---|
HU_NEO: "Python标准输出重定向", 《HTTPS://BLOG.CSDN.NET/LOUISHU_HU/ARTICLE/DETAILS/53737965?OPS_REQUEST_MISC=%257B%2522REQUEST%255FID%2522%253A%2522160584041819195264756471%2522》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625452B (zh) | 流量回放方法和系统 | |
WO2014206289A1 (en) | Method and apparatus for outputting log information | |
CN106354876A (zh) | 一种数据处理系统和方法 | |
CN106406914A (zh) | 安卓系统窗口数据的获取方法及装置 | |
CN106789324A (zh) | 基于MapReduce的FTP分布式采集方法 | |
CN109684219A (zh) | 系统性能测试方法、装置及存储介质 | |
CN108763042A (zh) | 一种基于python的云服务器性能数据采集方法及装置 | |
CN106815089A (zh) | 基于日志的故障排查方法及装置 | |
CN108710503A (zh) | 一种软件版本的管理方法、使用方法及系统 | |
CN111966465A (zh) | 一种实时修改宿主机配置参数的方法、系统、设备及介质 | |
CN108334392B (zh) | 安卓系统中启动页面的方法、存储介质、设备及系统 | |
CN104731650A (zh) | 系统接口调用信息的获取方法和装置 | |
CN106997313A (zh) | 一种应用程序的信号处理方法、系统及终端设备 | |
CN110457565A (zh) | 基于浏览器集群技术的数据采集系统及其控制方法 | |
CN107423090A (zh) | 一种Flash播放器异常日志管理方法及系统 | |
CN110377485A (zh) | 测试存储网络性能的方法、系统及组网方法 | |
CN108984141A (zh) | 一种输出重定向的方法及系统 | |
CN107220258A (zh) | 用于抓取应用页面的数据的方法、装置及终端 | |
CN109101229A (zh) | 一种面向对象的代码自动生成方法、装置及设备 | |
CN107783891A (zh) | 一种采集nginx日志的方法及服务器 | |
CN107506292A (zh) | 一种多级非均匀目录下随机读时延的自动化测试方法 | |
CN108153845B (zh) | 一种实现后台图像数据导出的方法及装置 | |
CN109120595A (zh) | 一种实现kvm功能的usb设备通信方法与装置 | |
CN112346774A (zh) | 一种应用安装包的生成方法和装置 | |
CN110334001A (zh) | 一种批量自动生成回声测试的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |