剛學python不久,在處理數據時每次都是在程序里面載入或讀取數據文件,當文件名改變時就得修改程序,后來才知道python的sys模塊有個argv[]函數可以獲取命令行參數,包括python腳本的名字, 輸入文件的名字等。如執行下列命令時:
python example.py file1 file2 ...
example.py腳本中的sys.argv[0]
的值就是"example.py",即python腳本的文件名,sys.argv[1]
的值為"file1",sys.argv[2]
的值為"file2"等等
于是只要在程序中載入sys模塊,并把要處理的數據文件名用argv[]函數讀入就可以進行后續處理了,并且對輸出文件可以根據輸入的數據文件名進行命名。示例代碼如下:
#!/usr/bin/env python
# Usage: "python scriptname.py data.dat"
import sys
# load data
datafile = sys.argv[1]
data = np.loadtxt(datafile)
# calculate
...
# save the result
outfile_name = "prefix_"+sys.argv[1]
outfile = open("%s"%outfile_name,"w") #將結果保存為以“prefix_"為前綴,后面接數據文件名的文件
outfile.write(...)
outfile.close()