Nitesh Ashok
Nitesh Ashok

Reputation: 11

Import set of builtin functions from a python file to another python file

I have set of inbuilt functions in 'pythonfile1.py' located at '/Users/testuser/Documents', the file contains

import os
import sys
import time

Now i want to import 'pythonfile1.py' to 'pythonfile2.py', which is located at '/Users/testuser/Documents/execute' I have tried with my following code and it didn't work:

import sys
sys.path[0:0] = '/Users/testuser/Documents'
import pythonfile1.py
print os.getcwd()

I want it to print the current working directory

Upvotes: 1

Views: 99

Answers (2)

MisterMiyagi
MisterMiyagi

Reputation: 50076

Your question is a bit unclear. Basically, there are two things 'wrong'.

  • First, your import statement is broken:

    import pythonfile1.py
    

    This specifies a file name, not a module name - modules don't contain dots and extensions. This is important because dots indicate sub-modules of packages. Your statement is trying to import module py from package pythonfile1. Change it to

    import pythonfile1
    
  • Second, there's no need to fetch builtins from another module. You can just import them again.

    # pythonfile1
    import os
    print 'pythonfile1', os.getcwd()  # assuming py2 syntax
    
    # pythonfile2
    import os
    print 'pythonfile2', os.getcwd()
    

    If you really want to use os from pythonfile1, you can do so:

    # pythonfile2
    import os
    import pythonfile1
    print 'pythonfile2', os.getcwd()
    print 'pythonfile1->2', pythonfile1.os.getcwd()
    

    Note that os and pythonfile1.os in pythonfile2 are the exact same module.

Upvotes: 1

Michal Hatak
Michal Hatak

Reputation: 787

if you want to import stuff from another file, you should use python modules.

If you will create file named init.py then the execute folder becomes a module. After that you can use

from .pythonfile1 import function_name

or you can use

from .pythonfile1 import * 

which imports all, but better solution is name everything you want to use explicitly

you can find more about modules in documentation

Upvotes: 0

Related Questions