By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,847 Members | 2,285 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,847 IT Pros & Developers. It's quick & easy.

Parameter Passing - String Variable Truncated ?

P: n/a
Hi,

I'm passing what I think is a string parameter to another Python
program (spawn.py) - see the code snip below. But only the counter
part gets printed to a log file via spawn.py. Yet the echo print to
the output window shows the whole string with the fc part. Better
explained below I hope, there's the calling .py and the spawn
script .py:
....snip...
while fc:
counter = counter + 1
fc_cntr = str(counter) + ' : ' + fc
print fc_cntr + '\n' # Print to Pythonwin interactive window -
eg. "1 : New York" - all is printed OK

arglist = []
arglist.append(pythonPath)
arglist.append(spawn_script)
arglist.append(fc_cntr) # This gets sent to the spawn_script but
only "1" gets printed

os.spawnv(os.P_WAIT, pythonPath, arglist)
fc = fcs.next()
....
--------------------------
## the spawn_script
import win32com.client, sys, os, time, re

in_featclass = sys.argv[1]
handle = open('C:\\log_file.txt', 'a')
handle.write(in_featclass + "\n") # ONLY the counter part gets printed
to the log file! Why?
--------------------------

Thanks, for help.

Aug 31 '07 #1
Share this Question
Share on Google+
5 Replies


P: n/a
On Sep 1, 9:54 am, goldtech <goldt...@worldpost.comwrote:
Hi,

I'm passing what I think is a string parameter to another Python
program (spawn.py) - see the code snip below. But only the counter
part gets printed to a log file via spawn.py. Yet the echo print to
the output window shows the whole string with the fc part. Better
explained below I hope, there's the calling .py and the spawn
script .py:
...snip...
while fc:
counter = counter + 1
fc_cntr = str(counter) + ' : ' + fc
print fc_cntr + '\n' # Print to Pythonwin interactive window -
eg. "1 : New York" - all is printed OK

arglist = []
arglist.append(pythonPath)
arglist.append(spawn_script)
arglist.append(fc_cntr) # This gets sent to the spawn_script but
only "1" gets printed

os.spawnv(os.P_WAIT, pythonPath, arglist)
fc = fcs.next()
...
--------------------------
## the spawn_script
import win32com.client, sys, os, time, re

in_featclass = sys.argv[1]
handle = open('C:\\log_file.txt', 'a')
handle.write(in_featclass + "\n") # ONLY the counter part gets printed
to the log file! Why?
--------------------------
Try handle.write(repr(sys.argv[1:]) + "\n")
and come back with your conclusions ... unless of course someone has
spoonfed you in the meantime.

Another clue: write yourself a little arg-dumper script and try
running it in a Command Prompt window.
8<---
import sys
for x, arg in enumerate(sys.argv):
print x, repr(arg)
8<---
HTH,
John

Sep 1 '07 #2

P: n/a
goldtech wrote:
Hi,

I'm passing what I think is a string parameter to another Python
program (spawn.py) - see the code snip below. But only the counter
part gets printed to a log file via spawn.py. Yet the echo print to
the output window shows the whole string with the fc part. Better
explained below I hope, there's the calling .py and the spawn
script .py:
...snip...
while fc:
counter = counter + 1
fc_cntr = str(counter) + ' : ' + fc
print fc_cntr + '\n' # Print to Pythonwin interactive window -
eg. "1 : New York" - all is printed OK

arglist = []
arglist.append(pythonPath)
arglist.append(spawn_script)
arglist.append(fc_cntr) # This gets sent to the spawn_script but
only "1" gets printed

os.spawnv(os.P_WAIT, pythonPath, arglist)
fc = fcs.next()
...
--------------------------
## the spawn_script
import win32com.client, sys, os, time, re

in_featclass = sys.argv[1]
Try

in_featclass = sys.argv[1:]

to collect all the arguments. At the moment I suspect some shell
argument processing is intervening, splitting your "N : something" into
multiple arguments.
handle = open('C:\\log_file.txt', 'a')
handle.write(in_featclass + "\n") # ONLY the counter part gets printed
to the log file! Why?
--------------------------

Thanks, for help.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

Sep 1 '07 #3

P: n/a
Steve Holden wrote:
[...]
>in_featclass = sys.argv[1]

Try

in_featclass = sys.argv[1:]
Sorry, that should have been

in_featclass = " ".join(sys.argv[1:])+"\n"

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------
Sep 1 '07 #4

P: n/a
Steve Holden wrote:
[...]
>in_featclass = sys.argv[1]

Try

in_featclass = sys.argv[1:]
Sorry, that should have been

in_featclass = " ".join(sys.argv[1:])+"\n"

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

Sep 1 '07 #5

P: n/a
snip...
--------------------------

Try handle.write(repr(sys.argv[1:]) + "\n")
and come back with your conclusions ... unless of course someone has
spoonfed you in the meantime.

Another clue: write yourself a little arg-dumper script and try
running it in a Command Prompt window.
8<---
import sys
for x, arg in enumerate(sys.argv):
print x, repr(arg)
8<---
HTH,
John
It's a list.

....
['5', ':', 'Alaska.shp']
['6', ':', 'Arizona.shp']
['7', ':', 'Arkansas.shp']
['8', ':', 'California.shp']
['9', ':', 'Colorado.shp']
['10', ':', 'Connecticut.shp']
['11', ':', 'Delaware.shp']
['12', ':', 'District', 'of', 'Columbia.shp']
['13', ':', 'Florida.shp']
['14', ':', 'West', 'Virginia.shp']
['15', ':', 'Wisconsin.shp']
['16', ':', 'Wyoming.shp']

Thanks,
Lee G.

Sep 1 '07 #6

This discussion thread is closed

Replies have been disabled for this discussion.