Parameter Passing - String Variable Truncated ?

John Machin sjmachin at lexicon.net
Fri Aug 31 21:36:44 EDT 2007


On Sep 1, 9:54 am, goldtech <goldt... at worldpost.com> 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]
> 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




More information about the Python-list mailing list