2014-06-11 170 views
0

读取文件我怎么能传递一个文件作为命令行参数使用命令行参数

a=np.loadtxt("graph3.txt",dtype='float') 

现在我想通过上面的文件graph3.txt作为命令行参数作为蟒蛇x.py graph3.txt并放在命令行参数上执行上述操作a = np.loadtxt(“graph3.txt”,dtype ='float')

+3

我认为谷歌可以给你更多的答案和文章,而不用等待在stackoverflow上的答案。这是一个基本的问题,可以在任何书中为Python新手解答。 – dikkini

回答

0

Python命令行参数存储在sys模块的列表变量argv中。所以,你正在寻找的代码是:

import sys 
a = np.loadtxt(sys.argv[1], dtype='float') 

假设你通过文件名作为第一个参数的脚本是你的问题指出。

文档在这里 - https://docs.python.org/2/library/sys.html#sys.argv

0

您可以使用argvsys模块:

from sys import argv print argv

你会得到所有的命令行参数的list即列表中0个位置将是名称剧本本身

[~]$ python script.py arg1 arg2 arg3 arg4 ['script.py', 'arg1', 'arg2', 'arg3', 'arg4']

2

您可以使用像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 
1

如果您需要支持大量的参数,并为他们提供帮助的使用,我觉得optparseargparse做好这些事情。

没有为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使脚本打印使用情况文档。