run a script getting 4 arguments from another script

Thomas Jollans t at jollybox.de
Fri Jul 22 20:19:02 EDT 2011


On 23/07/11 00:46, souleymane yo wrote:
> my initial file name is SpO2Sweep.loops.py
> In the new file I write this code to run the first one.
> 
> [code:]
> import SpO2Sweep.loops.py
> SpO2Sweep.loops.py.run("com1","0","30","0.0001")
> 
> 
> and It looks like the arguments are not passed to the first file. can
> someone help me?

tl;dr:

rename your file to a valid Python identifier, without periods, for
example "loops.py". Then, you can use "import loops" (note: no .py), and
loops.run(...)

tl:

When you say "import SpO2Sweep.loops.py", Python interpets the '.' as a
separator between nested package/module names, much like your operating
system interpets '/' (or perhaps '\') as a separator between
directory/file names. Python thus looks for the module or package "py"
within the package "loops" within the package "SpO2Sweep". For this to
work, you'd need the following directory layout:

./
    SpO2Sweep/
        __init__.py
        loop/
            __init__.py
            py.py

Note: A file named __init__.py turns a plain directory into a package
that Python recognises.

What you actually have is this:

./
    SpO2Sweep.loop.py

(That won't work)

Since Python treats periods specially, and names in Python cannot
contain periods (the special meaning of '.' trumps), you can never
import a file with that name.

- Thomas



More information about the Python-list mailing list