On 01/03/2014 08:03 PM, Sean Murphy wrote:
Hello all.
This is a newly question. But I wish to understand why the below code is
providing different results.
import os, sys
if len(sys.argv) > 2:
filenames = sys.argv[1:]
else
print ("no parameters provided\n")
sys.edit()
for filename in filenames:
print ("filename is: %s\n" %filename)
The above code will return results like:
filename is test.txt
If I modify the above script slightly as shown below, I get a completely
different result.
if len(sys.argv) > 2:
filenames = sys.argv[1]
else
print ("no parameters provided\n")
sys.exit()
for filename in filenames:
print ("filename is: %s\n" % filename)
The result is the filename is spelled out a character at a time. The bit I am
missing is something to do with splicing or referencing in Python.
Why am I getting different results? In other languages I would have got the
whole content of the element when using the index of the array (list).
Sean
filename is: t
filename
How easy it is to overlook your own typos... (No worry, everybody does it)
;-)
In your first version you have: filenames = sys.argv[1:]
which gives you a list of filenames (which is what you want).
In your second version you have: filenames = sys.argv[1]
which is ONE item -- a string, not a list. You left out the colon.
-=- Larry -=-
--
https://mail.python.org/mailman/listinfo/python-list