编写程序以生成日志

我的文本文件

import sys from itertools import islice args = sys.argv print (args) #['file.py','datafile','-N','10'] if args[1] == '-h': print ("-N for printing the number of lines: python file.py datafile -N 10") if args[2] == '-N': datafile = args[1] number = int(args[3]) with open(datafile) as myfile: head = list(islice(myfile,number)) head = [item.strip() for item in head] print (head) print ('\n'.join(head))

用户期望的输入:  1)生成的行数

2)输出到文件或控制台

3)当没有给程序参数时提供帮助。

4)确保该程序生成的行数是该程序的用户输入的行数。 (想想很多)

python3 test.py --help(应该显示帮助选项)

python3 test.py -N 20型控制台(它应该在控制台中打印日志)

python3 test.py -N 10 -type日志-name abc.log(应该将日志打印到文件中)

我的Psedo代码

argument passing

还有没有比$I->grabService('doctrine');

更好的方法了?
zhaiguanghusha 回答:编写程序以生成日志

如果未指定 output_file ,则该程序将默认在控制台中打印行

def parsing_arguments():
    parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter,description="""Write what your tool is doing here""")
    parser.add_argument("-n","--number_of_lines",type=int,help="Number of line to be generated",required=True)
    parser.add_argument("-o","--output_file",default=None,help="output file used for saving logs")
    args = parser.parse_args()

    output_to_console = args.output_file is None 

    return {"number_of_lines": args.number_of_lines,"output_file": args.output_file
            "output_to_console":args.output_to_console}

def line_generator_function(number_of_lines,output_file,output_to_console):
    lines = ... # custom logic here # assuming that lines is a list of strings 
    if output_to_console is True:
        print(*lines,sep="\n")
    else:
        with open(output_file,"wt") as out:
            print(*lines,sep="\n",file=out)


if __name__ == "__main__":
    arguments = line_generator_function()
    line_generator_function(**arguments)

argstrong会自动提供-帮助。它将打印主要描述和提供给参数描述的帮助。以及它被称为,不带任何参数。

如果您需要 dekstop GUI ,则可以检查此工具。 Gooey

,

对于命令行参数,请使用Python标准库argparse

Ionic CLI : 5.4.5 (C:\Users\AMD\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.11.3
@angular-devkit/build-angular : 0.803.3
@angular-devkit/schematics : 8.1.2
@angular/cli : 8.3.3
@ionic/angular-toolkit : 2.0.0
本文链接:https://www.f2er.com/3104445.html

大家都在问