Hướng dẫn how do you access a file from another file in python? - làm thế nào để bạn truy cập một tệp từ một tệp khác trong python?

Có nhiều cách để nhập một tệp Python, tất cả đều có ưu và nhược điểm của họ.

Đừng vội vàng chọn chiến lược nhập khẩu đầu tiên phù hợp với bạn nếu không bạn sẽ phải viết lại cơ sở mã sau khi bạn thấy nó không đáp ứng nhu cầu của bạn.

Tôi sẽ bắt đầu giải thích ví dụ dễ nhất số 1, sau đó tôi sẽ tiến tới ví dụ chuyên nghiệp và mạnh mẽ nhất #7

Ví dụ 1, nhập mô -đun Python với trình thông dịch Python:

  1. Đặt cái này vào /home/el/foo/fox.py:

    def what_does_the_fox_say():
      print("vixens cry")
    
  2. Tham gia phiên dịch Python:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    

    Bạn đã nhập Fox thông qua phiên dịch viên Python, gọi chức năng Python

    def moobar():
      print("hi")
    
    0 từ bên trong Fox.py.

Ví dụ 2, sử dụng

def moobar():
  print("hi")
1 hoặc (
def moobar():
  print("hi")
2 trong Python 3) trong tập lệnh để thực thi tệp Python khác tại chỗ:

  1. Đặt cái này vào /home/el/foo2/mylib.py:

    def moobar():
      print("hi")
    
  2. Đặt cái này vào /home/el/foo2/main.py:

    execfile("/home/el/foo2/mylib.py")
    moobar()
    
  3. Chạy tệp:

    el@apollo:/home/el/foo$ python main.py
    hi
    

    Hàm Moobar được nhập từ mylib.py và được cung cấp trong main.py

Ví dụ 3, sử dụng từ ... Nhập ... Chức năng:

  1. Đặt cái này vào /home/el/foo3/chekov.py:

    def question():
      print "where are the nuclear wessels?"
    
  2. Đặt cái này vào /home/el/foo3/main.py:

    from chekov import question
    question()
    
  3. Chạy nó như thế này:

    el@apollo:/home/el/foo3$ python main.py 
    where are the nuclear wessels?
    

    Nếu bạn xác định các chức năng khác trong Chekov.py, chúng sẽ không có sẵn trừ khi bạn

    def moobar():
      print("hi")
    
    3

Ví dụ 4, nhập RIAA.py nếu nó ở một vị trí tệp khác từ nơi nó được nhập

  1. Đặt cái này vào /home/el/foo4/stuff/riaa.py:

    def watchout():
      print "computers are transforming into a noose and a yoke for humans"
    
  2. Đặt cái này vào /home/el/foo4/main.py:

    import sys 
    import os
    sys.path.append(os.path.abspath("/home/el/foo4/stuff"))
    from riaa import *
    watchout()
    
  3. Chạy nó:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    0

    Điều đó nhập mọi thứ trong tệp nước ngoài từ một thư mục khác.

Ví dụ 5, sử dụng

def moobar():
  print("hi")
4

el@apollo:/home/el/foo$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import fox
>>> fox.what_does_the_fox_say()
vixens cry
>>> 
1

Ví dụ 6, hãy nhập tệp của bạn thông qua cõng The Python Startuphook:

Cập nhật: Ví dụ này được sử dụng để hoạt động cho cả Python2 và 3, nhưng bây giờ chỉ hoạt động cho Python2. Python3 đã loại bỏ bộ tính năng startuphook của người dùng này vì nó đã bị các nhà văn thư viện Python kỹ năng thấp lạm dụng, sử dụng nó để đưa mã của họ vào không gian tên toàn cầu, trước tất cả các chương trình do người dùng xác định. Nếu bạn muốn điều này hoạt động cho Python3, bạn sẽ phải sáng tạo hơn. Nếu tôi nói với bạn cách thực hiện, các nhà phát triển Python cũng sẽ vô hiệu hóa tính năng đó được đặt, vì vậy bạn là một mình. This example used to work for both python2 and 3, but now only works for python2. python3 got rid of this user startuphook feature set because it was abused by low-skill python library writers, using it to impolitely inject their code into the global namespace, before all user-defined programs. If you want this to work for python3, you'll have to get more creative. If I tell you how to do it, python developers will disable that feature set as well, so you're on your own.

Xem: https://docs.python.org/2/l Library/user.html

Đặt mã này vào thư mục nhà của bạn trong

def moobar():
  print("hi")
5

el@apollo:/home/el/foo$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import fox
>>> fox.what_does_the_fox_say()
vixens cry
>>> 
2

Đặt mã này vào Main.py của bạn (có thể ở bất cứ đâu):

el@apollo:/home/el/foo$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import fox
>>> fox.what_does_the_fox_say()
vixens cry
>>> 
3

Chạy nó, bạn sẽ nhận được điều này:

el@apollo:/home/el/foo$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import fox
>>> fox.what_does_the_fox_say()
vixens cry
>>> 
4

Nếu bạn gặp lỗi ở đây:

def moobar():
  print("hi")
6 thì điều đó có nghĩa là bạn đang sử dụng python3, startuphooks bị vô hiệu hóa ở đó theo mặc định.

Tín dụng cho jist này đi tới: https://github.com/docwhat/homedir-examples/blob/master/python-commandline/.pythonrc.py

Ví dụ 7, mạnh nhất: Nhập các tệp trong Python với lệnh nhập trần:

  1. Tạo một thư mục mới
    def moobar():
      print("hi")
    
    7
  2. Tạo một thư mục mới
    def moobar():
      print("hi")
    
    8
  3. Tạo một tệp trống có tên

    def moobar():
      print("hi")
    
    9 trong herp:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    5
  4. Tạo một thư mục mới/home/el/foo5/herp/derp

  5. Trong DERP, hãy tạo một tệp

    def moobar():
      print("hi")
    
    9 khác:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    6
  6. Under/home/el/foo5/herp/derp tạo một tệp mới có tên

    execfile("/home/el/foo2/mylib.py")
    moobar()
    
    1 Đặt cái này vào đó:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    7
  7. Khoảnh khắc của sự thật, tạo tập tin mới

    execfile("/home/el/foo2/mylib.py")
    moobar()
    
    2, đặt nó vào đó;

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    8
  8. Chạy nó:

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    
    9

    Điều đó nhập mọi thứ trong tệp nước ngoài từ một thư mục khác.

Ví dụ 5, sử dụng

def moobar():
  print("hi")
4

Làm thế nào để bạn truy cập một tệp khác trong Python?

Có nhiều cách để tạo một tệp python chạy khác ...
Sử dụng nó như một mô -đun.Nhập tệp bạn muốn chạy và chạy các chức năng của nó.....
Bạn có thể sử dụng lệnh EXEC.EXECFILE ('File.py') ....
Bạn có thể sinh ra một quy trình mới bằng HĐH.lệnh hệ thống ..

Làm thế nào để bạn truy cập một tệp python từ một thư mục khác?

Chúng ta có thể sử dụng sys.path để thêm đường dẫn của thư mục mới (thư mục từ nơi chúng ta muốn nhập các mô -đun) vào đường dẫn hệ thống để Python cũng có thể tìm mô -đun trong thư mục đó nếu nó không tìm thấyMô -đun trong thư mục hiện tại của nó.use sys. path to add the path of the new different folder (the folder from where we want to import the modules) to the system path so that Python can also look for the module in that directory if it doesn't find the module in its current directory.

Làm cách nào để sử dụng một hàm từ một tệp khác trong Python?

Để sử dụng các chức năng được viết trong một tệp bên trong một tệp khác bao gồm dòng nhập, từ FileName Nhập chức năng_name.Lưu ý rằng mặc dù tên tệp phải chứa a.Tiện ích mở rộng PY,.PY không được sử dụng như một phần của tên tệp trong quá trình nhập.include the import line, from filename import function_name . Note that although the file name must contain a . py extension, . py is not used as part of the filename during import.