用户在python中定义的输入

时间:2014-02-05 10:23:35

标签: python python-2.7

我有一个读取.csv文件的脚本,我想设置它以便它可以按如下方式运行

python script.py file1.csv file2.csv file3.csv

我还希望脚本的输出(.csv)根据输入命名csv。

以下是当前行

with open("test2.csv","wb") as f:
    output = csv.writer(f) 
    for line in csv.reader(open("test.csv")):

我尝试过使用raw_input但它似乎不适合这项工作,还有另外一种方法吗?

2 个答案:

答案 0 :(得分:5)

您可以使用sys.argv,也可以更轻松,更复杂地解析argparse 标准库。

一个例子是:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("infile")
parser.add_argument("outfile")
args = parser.parse_args()

with open(args.outfile, "wb") as f:
    output = cvs.writer(f)
    for line in csv.reader(open(args.infile)):

对于更复杂的示例,例如接受可变数量的输入文件和一个输出文件,请参阅上面链接的argparse文档或argparse tutorial

答案 1 :(得分:2)

在脚本中添加以下内容:

import sys
print sys.argv

跑步:

python script.py file1.csv file2.csv file3.csv

您将获得以下输出:

['script.py', 'file1.csv', 'file2.csv', 'file3.csv']

即,sys.argv包含一个列表,其第一项是正在运行的脚本的名称,其后续项是要传递的选项/文件名。