Trouble porting glob bash behavior with argparse to windows shell
Sayth Renshaw
flebber.crue at gmail.com
Sun May 15 23:21:24 EDT 2016
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
More information about the Python-list
mailing list