用户在python中定义的输入

use*_*810 0 python python-2.7

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

python script.py file1.csv file2.csv file3.csv
Run Code Online (Sandbox Code Playgroud)

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

这是当前的行

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

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

Jon*_*fer 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)):
Run Code Online (Sandbox Code Playgroud)

有关更复杂的示例,例如接受可变数量的输入文件和正好一个输出文件,请参阅上面链接的argparse文档或argparse教程.