The line filename = sys.argv[1]
runs first. Your len()
test is not reached.
Move setting the filename
and tree
into the main()
function, and don't use globals here:
def f1(tree):
...
def main():
if len(sys.argv) < 2:
print 'usage: extract.py [file ...]'
sys.exit(1)
filename = sys.argv[1]
tree = etree.parse(filename)
f1(tree)
if __name__ == '__main__':
main()