EML使用python语言写小算法

2017-09-13  本文已影响0人  yandaxin

最开始一直在查怎么把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]是第二个,依次类推。

上一篇下一篇

猜你喜欢

热点阅读