读取文件我怎么能传递一个文件作为命令行参数使用命令行参数
a=np.loadtxt("graph3.txt",dtype='float')
现在我想通过上面的文件graph3.txt作为命令行参数作为蟒蛇x.py graph3.txt并放在命令行参数上执行上述操作a = np.loadtxt(“graph3.txt”,dtype ='float')
读取文件我怎么能传递一个文件作为命令行参数使用命令行参数
a=np.loadtxt("graph3.txt",dtype='float')
现在我想通过上面的文件graph3.txt作为命令行参数作为蟒蛇x.py graph3.txt并放在命令行参数上执行上述操作a = np.loadtxt(“graph3.txt”,dtype ='float')
Python命令行参数存储在sys
模块的列表变量argv
中。所以,你正在寻找的代码是:
import sys
a = np.loadtxt(sys.argv[1], dtype='float')
假设你通过文件名作为第一个参数的脚本是你的问题指出。
您可以使用argv
从sys
模块:
from sys import argv print argv
你会得到所有的命令行参数的list
即列表中0
个位置将是名称剧本本身
[~]$ python script.py arg1 arg2 arg3 arg4 ['script.py', 'arg1', 'arg2', 'arg3', 'arg4']
您可以使用像argparse或docopt库,但对于简单的任务,只是看sys.argv中:
import sys
if len(sys.argv) != 2:
print("Please inform the filename")
exit(1)
fname = sys.argv[1]
try:
a = np.loadtxt(fname, dtype='float')
except IOError:
print("File '%s' doesn't exist", fname)
exit(1)
# Program continues
如果您需要支持大量的参数,并为他们提供帮助的使用,我觉得optparse和argparse做好这些事情。
没有为optparse
一个例子:
from optparse import OptionParser
parser = OptionParser(version="%prog 1.0.0")
parser.add_option("-f", "--file", action="store", dest="file",
default="graph3.txt", type="string",
help="specify a file to load")
options, args = parser.parse_args()
a=np.loadtxt(options.file,dtype="float")
然后,你可以使用这样的脚本:./script.py -f gragh3.txt
或./script.py --file=gragh3.txt
。
而且您可以使用./script.py -h
使脚本打印使用情况文档。
我认为谷歌可以给你更多的答案和文章,而不用等待在stackoverflow上的答案。这是一个基本的问题,可以在任何书中为Python新手解答。 – dikkini