刚学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()