我有一个读取.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但它似乎不适合这项工作,还有另外一种方法吗?
答案 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包含一个列表,其第一项是正在运行的脚本的名称,其后续项是要传递的选项/文件名。