我想构建一个python脚本,用户可以通过文件名从命令行但由于某种原因文件名不被识别提供错误,当它的时间为csv循环阅读文件。如果我静态地放置文件的名字,这个脚本没有问题。任何帮助是极大的赞赏。Python阅读CSV和发送到功能
#!/usr/bin/python
import sys, getopt, re, csv
def pushname(firstname, lastname, dob):
print firstname + '\n'
print lastname + '\n'
print dob + '\n'
def printUsage():
print 'script.py -f <inputfile>'
def main(argv):
firstname = ''; lastname = ''; dob = ''; csvfile = ''
try:
opts, args = getopt.getopt(argv,"?fn:ln:dob:f",["fistname",
"lastname", "dob", "csvfile="])`
except getopt.GetoptError:
printUsage()
sys.exit(2)
if len(opts) == 0:
printUsage()
sys.exit(0)
for opt, arg in opts:
if opt in ("-f", "--file"):
csvfile = arg
elif opt in ("-fn"):
firstname = arg
elif opt in ("-ln"):
lastname = arg
elif opt in ("-dob"):
dob = arg
print csvfile
with open(csvfile, 'r') as file:
reader = csv.DictReader(file)
for row in reader:
firstname = row['firstname']
lastname = row['lastname']
dob = row['dob']
pushname(firstname, lastname, dob)
if __name__ == "__main__":
main(sys.argv[1:])
我看到的错误是:
Traceback (most recent call last):
File "script.py", line 37, in <module>
main(sys.argv[1:])
File "script.py", line 46, in main
with open(csvfile, 'r') as file:
IOError: [Errno 22] invalid mode ('r') or filename: ''
“提供错误”像什么? – TigerhawkT3
@ TigerhawkT3 - 我更新了错误,我看到的问题 – yusof
@ TigerhawkT3 - 之前我没有(csvfile,'r'),我从(csvfile) – yusof