On Wednesday, 4 May 2016 17:57:32 UTC+10, Sayth Renshaw wrote:
> Oops sorry noticed you did in the glob. Sorry squinting at phone.
>
> Sayth
Hi
this seems to be causing me an error in my thinking as well as the program. I
am creating a function GetArgs to take a path and file extension from the
command line.
However I cannot call it effectively. I will clrify this is my function
import argparse
import glob
import os
import sqlite3
def GetArgs(parser):
'''parse XML from command line'''
parser.add_argument("path", nargs="+")
parser.add_argument('-e', '--extension', default='',
help='File extension to filter by.')
args = parser.parse_args()
files = set()
name_pattern = "*" + args.extension
for path in args.path:
files.update(glob.glob(os.path.join(path, name_pattern)))
return files
Then later in program I am attempting to call it an a for statement.
filesToProcess = GetArgs()
for meeting in filesToProcess:
meetdata = [meeting.get(attr) for attr in meetattrs]
cur.execute("insert into meetings values (" +
",".join(["%s"] * len(meetattrs)) + ")", meetdata)
this fails as i would expect, however if I declare a list as the GetArgs()
argument it fails as well.
Where my confusion is that I created the function to take arguments from the
command line, so I don't have that variable to supply until executed.
Have i overbaked the cake?
Sayth
--
https://mail.python.org/mailman/listinfo/python-list