【发布时间】:2012-07-30 13:31:46
【问题描述】:
有人可以帮助我吗,我正在尝试将 optparse 与 csv 阅读器链接,但我一直无法这样做。以下是我的代码:
import csv
from optparse import OptionParser
parser = OptionParser()
parser.add_option('--i1', action='store', type='string', dest='input1file', help='[REQUIRED] The input .csv file path.')
(options, args) = parser.parse_args()
input1file = options.input1file
data = csv.reader(open('input1file','r'))
temp = open('C:\Practice\output_edited.csv','a')
for column in data:
temp.write(column[0]+','+column[len(column)-1]+'\n')
print column[0]+','+column[len(column)-1]+'\n'
temp.close()
我不知道如何连接 add_option 部分,以便用户可以输入文件名路径。 谢谢!
我更新了我的代码。但是还是不能正常工作。
更新1:
import sys
import csv
from optparse import OptionParser
parser = OptionParser()
parser.add_option('--i1', action='store', type='string', dest='input1file', help='[REQUIRED] The input .csv file path.')
(options, args) = parser.parse_args()
input1file = options.input1file
try:
input1file = args[1]
except IndexError:
sys.exit("Input file required, none given")
data = csv.reader(open(sys.args[1],'r'))
temp = open('C:\Practice\output_edited.csv','a')
for column in data:
temp.write(column[0]+','+column[len(column)-1]+'\n')
print column[0]+','+column[len(column)-1]+'\n'
temp.close()
【问题讨论】:
-
不要引用
'input1file',除非那是您想要的实际文件名。 -
考虑切换到 argparse。这就是现在所有酷孩子都在做的事情。
-
optparse也已弃用。 -
去掉try/except语句,使用
data = csv.reader(open(input1file, 'r'))。