选择分析csv.read文件

2024-06-09 03:11:22 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我吗,我正试着把一个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:

^{pr2}$

Tags: csv代码importaddparserdataargscolumn
2条回答
data = csv.reader(open('input1file','r'))

应该是

^{pr2}$

根据您的评论,您似乎忘记使用 i1参数。如果实际需要,则应强制执行:

例如:

if not input1file:
  print "What?  you were supposed to give ' i1 filename', but you didn't.  Shame on you!"
  sys.exit(1)

请注意,这在^{中更容易实现。只需将required=True传递给add_argument方法

如果不在命令行中指定 i1,那么options.input1file就是None,因为您没有提供默认值。在

myscript.py  i1 input.txt

既然 i1是必需的,它实际上不应该是一个选项(因为它不是可选的)。取而代之的是args中的输入文件:

^{pr2}$

或者,正如mgilson建议的那样,使用argparse。它支持命名的位置参数。在

相关问题 更多 >