2 calelin calelin 于 2017.09.01 11:42 提问

linux小白求助:如何编写python程序模拟linux的cat命令?题目具体如下。

%​ ​cat​ ​in
this​ ​is​ ​the​ ​contents​ ​of​ ​in
%​ ​cat​ ​test
this​ ​is​ ​the​ ​contents​ ​of​ ​test
%​ ​python3​ ​cat.py​ ​“in”​ ​“test”
this​ ​is​ ​the​ ​contents​ ​of​ ​in
this​ ​is​ ​the​ ​contents​ ​of​ ​test
需要编写的是cat.py程序,程序是在命令行运行的

2个回答

weixin_39195527
weixin_39195527   2017.09.01 14:05
已采纳

首先我们先认识一下cat指令的主要功能,如果不加任何参数,cat $file, 就是将文件内容输出到标准输出。

如果我们所要写的python脚本就是为了实现这一功能,那么就很好办了,以下是样例代码:

import re
import sys
import os

def main():
    """
    """
    file_list = sys.argv[1:]
    for file_name in file_list:
        if os.path.exists(file_name):
            with open(file_name) as file_obj:
                print file_obj.read()
        else:
            print "File %s doesn't exist!" % file_name

if __name__ == "__main__":
    reload(sys)
    sys.setdefaultencoding("utf-8")
    main()

weixin_39195527
weixin_39195527 回复calelin: linux 下的wc命令其实就是数行, 你可以定义一个变量,按行
2 个月之前 回复
calelin
calelin linux小白一枚,同时python也不了解,还望指教
3 个月之前 回复
calelin
calelin 您好,可否麻烦您再看一下如何用python模拟linux的wc命令:(以下是输入和输出) %​ ​cat​ ​in back​ ​then a​ ​cow came​ ​to​ ​me %​ ​python3​ ​wc.py​ ​ ​in 3​ ​7​ ​24 %​ ​python3​ ​wc.py​ ​ ​-w​ ​in 7 %​ ​python3​ ​wc.py​ ​ ​-n​ ​in 3 %​ ​python3​ ​wc.py​ ​ ​-b​ ​in 24
3 个月之前 回复
weixin_39195527
weixin_39195527   2017.09.11 10:34

linux 下wc 模拟

import re
import sys
import os

def main():
    """
    """
    file_list = sys.argv[1:]
    for file_name in file_list:
        count = 0
        if os.path.exists(file_name):
            with open(file_name) as file_obj:
                for line in file_obj:
                    count += 1
            print "File %s has %d line" % (file_name, count)
        else:
            print "File %s doesn't exist!" % file_name

if __name__ == "__main__":
    reload(sys)
    sys.setdefaultencoding("utf-8")
    main()
Csdn user default icon
上传中...
上传图片
插入图片