`
gumuzhiyu
  • 浏览: 37329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python cat

 
阅读更多
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import sys, os
import argparse
import re


def showprintings(f,endchar,showNum=False):
    max_len = 4096
    num = 0
    prog = re.compile('\t')
    prog2 = re.compile('\r\n')

    if not os.path.isfile(f):
        print("{}: not a file".format(f))

    try:
        with open(f, "rb") as fp:
            for line in iter(lambda: fp.readline(max_len), b''):
                line = line.decode()
                if showNum == True:
                    num += 1
                    if endchar == 'Num':
                        if line != '\r\n':
                            print("{} {}".format(num, line), end='')
                        else:
                            print('')
                    else:
                        print("{} {}".format(num, line), end='')
                else:
                    if endchar == "$":
                        line = prog2.sub('$', line)
                        print("{}".format(line), end='\n')
                    elif endchar == "T":
                        line = prog.sub('^I', line)
                        line = line[:-2]
                        print("{}".format(line), end='\n')
                    else:
                        print("{}".format(line), end='')
    except Exception as e:
        print(e)


def main():
    usage = 'cat - concatenate files and print on the standard output'
    parser = argparse.ArgumentParser(usage) 
    parser.add_argument('-n', action='store_true', default=False, help='number all output lines')
    parser.add_argument('-b', action='store_true', default=False, help='number nonempty output lines')
    parser.add_argument('-v', action='store_true', default=False, help='use ^ and M- notation, except for LFD and TAB')
    parser.add_argument('-E', action='store_true', default=False, help='display $ at end of each line')
    parser.add_argument('-T', action='store_true', default=False, help='display TAB characters as ^I')
    parser.add_argument('-t', action='store_true', default=False, help='equivalent to -vT')


    parser.add_argument("x", type=str, help="File1")

    args = parser.parse_args()
    if args.v:
        showprintings(args.x, '', False)
    elif args.E:
        showprintings(args.x, '$', False)
    elif args.b:
        showprintings(args.x, 'Num', True)
    elif args.n:
        showprintings(args.x, '', True)
    elif args.T or args.t:
        showprintings(args.x, 'T', False)
    else:
        print(parser.print_help())


if __name__ == '__main__':
    main()

 
分享到:
评论

相关推荐

    基于Python的Asterix Cat 021数据格式解析分析与实现.zip

    最后,压缩包中的"基于Python的Asterix Cat 021数据格式解析分析与实现.pdf"文件很可能是详细的教程或研究报告,涵盖了上述所有概念和步骤,提供了一个完整的解析实现。通过阅读这个文档,你可以深入理解如何在...

    Python库 | catboost-1.0.3-cp310-none-manylinux1_x86_64.whl

    资源分类:Python库 所属语言:Python 资源全名:catboost-1.0.3-cp310-none-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    CAT021报文格式.zip_Asterix CAT021_CAT021报文解析_Cat021解析_asterix报文代码_ca

    **CAT021报文格式详解** 在民航领域,数据通信是确保飞行安全和效率的关键环节之一。其中,Asterix(Aircraft Situation Display to Industry)标准被广泛应用于空中交通管理(ATM)的数据交换,它定义了一系列报文...

    Python库 | catboost-0.2-cp35-none-manylinux1_x86_64.whl

    资源分类:Python库 所属语言:Python 资源全名:catboost-0.2-cp35-none-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | catboost-0.17.4-cp27-none-manylinux1_x86_64.whl

    资源分类:Python库 所属语言:Python 资源全名:catboost-0.17.4-cp27-none-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyPI 官网下载 | tencentcloud-sdk-python-cat-3.0.412.tar.gz

    《PyPI官网下载的tencentcloud-sdk-python-cat-3.0.412.tar.gz:腾讯云Python CAT SDK详解》 PyPI(Python Package Index)是Python编程语言的官方软件包仓库,它提供了丰富的第三方库资源,使得开发者可以便捷地...

    使用python实现Cat命令

    使用python实现Cat命令 ## 要求 没有必要,只使用python库 # 运行程序 在linux上,您可以使用 ``` ./cat.py [path] ``` 或者 ```python ./cat.py [path]``` 例如 ```./cat.py ./test_cat.txt```

    Python实现CatBoost时间序列预测(完整源码和数据)

    1.Python实现CatBoost时间序列预测(完整源码和数据) anaconda + pycharm + python +Tensorflow 注意事项:保姆级注释,几乎一行一注释,方便小白入门学习! 2.代码特点:参数化编程、参数可方便更改、代码编程思路...

    Python库 | catboost-0.4.1-cp35-none-manylinux1_x86_64.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:catboost-0.4.1-cp35-none-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    基于Python的Asterix Cat 021数据格式解析分析与实现.pdf

    Python是一种面向对象的编程语言,它最初被设计用于编写自动化脚本,但随着语言功能的不断增强和更新,如今已经广泛应用于多种复杂的软件开发领域。 为了对ADS-B数据进行有效处理,本文通过对Asterix Category 021...

    TwinCAT和PythonADS通讯读取Xbox360手柄按键-20210317.zip

    而PythonADS是Python语言的一个扩展库,它允许我们通过ADS(Automation Device Specification)协议与TwinCAT进行通信,实现了Python与PLC之间的数据交换。本案例中,我们将探讨如何利用TwinCAT和PythonADS实现读取...

    Python库 | catboost-0.24.1-cp37-none-win_amd64.whl

    资源分类:Python库 所属语言:Python 资源全名:catboost-0.24.1-cp37-none-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | catboost_dev-0.13.1.2891-cp35-none-win_amd64.whl

    python库。 资源全名:catboost_dev-0.13.1.2891-cp35-none-win_amd64.whl

    Python库 | dbcat-0.9.0-py3-none-any.whl

    **Python库dbcat-0.9.0-py3-none-any.whl详解** 在Python的开发环境中,库扮演着至关重要的角色,它们提供了丰富的功能,让开发者能够更高效地完成各种任务。`dbcat`是一个Python库,它专注于数据管理和查询,特别...

    twincat和pythonADS通讯测试-20210317.zip

    标题 "twincat和pythonADS通讯测试-20210317.zip" 提到的是一个关于使用Twincat和Python ADS进行通信的测试案例,时间是在2021年3月17日。这个压缩包可能包含了文档、源代码和其他相关资源,帮助用户了解如何实现这...

    PyPI 官网下载 | tencentcloud-sdk-python-cat-3.0.529.tar.gz

    《PyPI官网下载的tencentcloud-sdk-python-cat-3.0.529.tar.gz:腾讯云Python SDK深度解析》 PyPI(Python Package Index)是Python开发者们分享和获取软件包的重要平台,它提供了丰富的Python库供全球的开发者使用...

    基于Python的cAT项目设计源码及前端资源整合

    该cAT项目采用Python作为主要开发语言,集成了HTML、JavaScript、CSS等多语言开发资源,共计包含4925个文件。具体文件类型分布为:1379个Python源文件、1255个MO文件、1197个PO文件、193个HTML文件、97个JavaScript...

    Python库 | KeyCat-0.1.3.tar.gz

    《Python库探索:KeyCat-0.1.3.tar.gz深度解析》 在信息技术日新月异的时代,Python作为一门强大且易学的编程语言,已经成为了开发者的首选工具之一。今天,我们要深入探讨的是一款名为KeyCat的Python库,其版本为...

    hashcat计算hash工具(python)

    例如office密码哈希计算机工具文件office2john.py,使用office2john.py target.doc即可计算其文档加密值。

    利用pgzero制作打猫咪游戏(汤姆猫游戏)

    在Python编程领域,pgzero是一个非常适合初学者,尤其是少儿编程入门的库,它提供了一种简单易用的方式来创建2D游戏。"利用pgzero制作打猫咪游戏(汤姆猫游戏)"是一个很好的实践项目,可以帮助孩子们理解基本的游戏...

Global site tag (gtag.js) - Google Analytics