我想構建一個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