用户自定义输入CSV文件
我有几行代码可以读取一个特定格式的csv文件。现在我想要的(但没找到解决办法)是,让文件名不再是固定的,而是变成用户在运行这个Python程序时输入的内容。现在代码里有一个静态的文件名,比如:
reader = csv.reader(open("file.csv", "rb"))
我希望这个文件名能变成用户提供的信息。这个是用raw_input来实现,还是有其他方法让用户输入类似这样的内容:
python testfile.py --input:file.csv
提前感谢你的帮助!
5 个回答
5
最简单的方法是这样写你的脚本:
import sys
reader = csv.reader(open(sys.argv[1], "rb"))
然后这样运行它:
python testfile.py file.csv
你应该加一些错误检查,比如:
if len(sys.argv) < 2:
print "Usage..."
sys.exit(1)
想要更强大的功能,可以使用内置的 optparse
或 argparse
库。
2
作为参考,optparse(http://docs.python.org/library/optparse.html)版本大概是这样的。
import optparse
parser = optparse.OptionParser()
parser.add_option("-i","--input",dest="filename")
(options,args) = parser.parse_args()
thefile = options.filename
reader = csv.reader(thefile,"rb")
这样你就可以调用以下任意一个
python script.py -i foo.dat
python script.py --input foo.dat