美文网首页
EML使用python语言写小算法

EML使用python语言写小算法

作者: yandaxin | 来源:发表于2017-09-13 22:07 被阅读0次

    最开始一直在查怎么把python程序编译打包成可以用java -cp使用的jar包,科科,愚蠢的我如此可爱。最后在微信群里问了一下,python程序直接将.py文件放到文件夹里压缩成zip文件,然后上传即可使用,CMD命令为python xx.py,和在shell 里的命令一样。

    需求可以参阅我的上一篇日志:用eclipse+maven为scala编写的源程序打jar包

    话不多说,直接上代码:

    # -*- coding: utf-8-*-
    import fileinput
    import sys
    
    #read operation
    inmatrix=""
    for line in fileinput.input(sys.argv[1]):
        inmatrix+=line
    print(inmatrix)
    numberofchar =inmatrix.count("#")
    outflag=""
                
    #check operation
    if(numberofchar%2==0):
        outflag="0"
        print("矩阵行数是偶数,flag="+outflag)
    else:
        outflag="1"
        print("矩阵行数是奇数,flag="+outflag)
        print(outflag)
        
    #write operation
    file_out = open(sys.argv[2], 'w')
    file_out.write(outflag)
    file_out.close()
    

    代码中最核心的就是怎么把文件作为参数传给.py文件,因为群里说CMD和在shell中执行命令一样,受到启发,搜索Python 获得命令行参数的方法,在shell中输入CMD命令python check.py matrixtest.txt result.txt,其中check.py、matrixtest.txt、result.txt放在统一目录下。果然能够运行成功。

    最后复习一下利用sys模块为.py脚本传参数:

    #test.py
    import sys
    print "脚本名:", sys.argv[0]
    for i in range(1, len(sys.argv)):
       print "参数", i, sys.argv[i]
    

    执行python test.py hello world 输出为:
    脚本名:test.py
    参数 1 hello
    参数 2 world
    也就是说sys.argv[0]默认是脚本的名字,sys.argv[1]是脚本获取的第一个参数,sys.argv[2]是第二个,依次类推。

    相关文章

      网友评论

          本文标题:EML使用python语言写小算法

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