待更新

作者: Chuck_Gemini | 来源:发表于2020-07-20 23:39 被阅读0次

    一、 命令行构建

    1. 标准输入输出(sys类)
    • 参数输入
    import sys
    print(sys.argv)                       # sys.argv 是列表名
    print(sys.argv[2])
    
    # 调用
    [in]>>python3 test.py localhost 3360
    [out]>>[‘test.py’,’localhost’,’3360’]
    [out]>>3360
    
    • 标准输入(一次性只读输入)
    import sys
    for line in sys.stdin:
        print(line,end = “”)
    
    • 调用
    [in]>>cat /etc/passwd | python3 test.py
    [in]>>python3 test.py < /etc/passwd
    
    • 标准输出
    sys.stdout.write(“hello”)         # 标准输出,直接输出到屏幕上
    
    • 标准错误输出(echo $?为1)
    # 方法一:伴随exit一块,可以用重定向输出到其他位置
    sys.stderr.write(“error message”)        
    sys.exit(1)                                         # 常规退出
    
    # 方法2:同上两句,但是程序崩溃,抛出字符串
    raise SystemExit(“error message”)      
    
    1. 读取文件输入(fileinput类)
    • 读取输入(灵活性高)
    import fileinput
    
    for line in fileinput.input():                                # 如果是多个文件,都会被打包到一起,一块读入内存
        if fileinput.filelineno() == 3:                          # 这条可判断当前操作文件任意行int
            print("当前文件名",fileinput.filename())    # 当前操作文件名str
            print("当前行内容:",line)
    
    • 在原文件原位置修改
    import fileinput
    import sys
    # 此for循环里的stdout输出都会被替换到文件里,包括空
    for line in fileinput.input(inplace = True):    # 修改开关inplace
        if fileinput.isfirstline():                              # 这条判断是否是当前操作文件第一行 
            line = "=>" + line                                 # 修改line的值
        sys.stdout.write(line)                               # 构造stdout输出
    
    • 调用
    [in]>>cat /root/e1 | python3 test.py
    [in]>>python3 test.py < /root/e1
    [in]>>python3 test.py /root/e1 /root/e2   # 这个是针对多个文件进行批处理操作
    

    相关文章

      网友评论

          本文标题:待更新

          本文链接:https://www.haomeiwen.com/subject/krsfhktx.html