最開始一直在查怎么把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("矩陣行數(shù)是偶數(shù),flag="+outflag)
else:
outflag="1"
print("矩陣行數(shù)是奇數(shù),flag="+outflag)
print(outflag)
#write operation
file_out = open(sys.argv[2], 'w')
file_out.write(outflag)
file_out.close()
代碼中最核心的就是怎么把文件作為參數(shù)傳給.py文件,因為群里說CMD和在shell中執(zhí)行命令一樣,受到啟發(fā),搜索Python 獲得命令行參數(shù)的方法,在shell中輸入CMD命令python check.py matrixtest.txt result.txt,其中check.py、matrixtest.txt、result.txt放在統(tǒng)一目錄下。果然能夠運行成功。
最后復(fù)習(xí)一下利用sys模塊為.py腳本傳參數(shù):
#test.py import sys print "腳本名:", sys.argv[0] for i in range(1, len(sys.argv)): print "參數(shù)", i, sys.argv[i]執(zhí)行python test.py hello world 輸出為:
腳本名:test.py
參數(shù) 1 hello
參數(shù) 2 world
也就是說sys.argv[0]默認是腳本的名字,sys.argv[1]是腳本獲取的第一個參數(shù),sys.argv[2]是第二個,依次類推。