我以某种格式读取csv文件的一些代码行。我现在想要的(并且无法找到解决方案)是文件名在调用python程序时停止过时并成为实际的用户输入。现在我在代码中有一个静态文件名,例如:
reader = csv.reader(open("file.csv", "rb"))
我希望这成为用户提供的信息。这是使用raw_input完成的,还是通过让用户在以下行中写一些内容来实现:
python testfile.py --input:file.csv
提前感谢您的帮助!
答案 0 :(得分: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
库中的bult。
答案 1 :(得分: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
答案 2 :(得分:1)
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以访问sys.argv
这是一个输入数组。但请记住,第一个参数是实际程序本身。