如何将 py 文件导入主 python 脚本?

How to import py files into a main python script?

所以我有一个看起来像这样的数据清理项目:

import math
import os
import pandas as pd
import math


class CustomDataFrame():
    code    
class CustomDataFrameItem():
    code
class Util():
    code

class Program():
    code

if __name__ == "__main__":
    p = Program()
    p.run()

但是,我希望将 4 个 classes 放入单独的 py 文件中,并有一个仅包含

的主文件
if __name__ == "__main__":
        p = Program()
        p.run()  

但是我不确定如何调用所有 class 文件,如果我将它们分开。

你能告诉我该怎么做吗?提前谢谢你。

我强烈建议查看 official documentation or a tutorial 以了解 import 命令。

如果它们都在同一目录中没有任何问题,您可以将它们拆分成单独的文件并导入它们。

此答案假定您的目录具有以下结构:

.
| - file1.py
| - file2.py
| - ...etc
| - main.py

如果您想嵌套目录,请参阅其他答案。他们的回答包括如何使用 __init__.py 来解决这个问题。

如果您在单个文件中定义了 类,则只需导入该脚本所需的标准库。例如,如果 CustomDataFrame 需要 RequiredModule1RequiredModule2 但不需要 matplotlib,您可以将其写在 file1.py.

file1.py

import RequiredModule1
import RequiredModule2
#etc
class CustomDataFrame():
    code 

您可以将它们分离到单独的文件中,或者将模块组合到一个文件中并导入它们中的每一个。 file2.py

class CustomDataFrameItem():
    code 
class Program():
    code

main.py

from file1 import CustomDataFrame
from file2 import CustomDataFrameItem, Program
if __name__ == "__main__":
    p = Program()
    p.run()

请注意,不要将文件扩展名 .py 放在 from fileX import xxx 上。 .py 由解释器推断。

以文件结构为例:

-main.py
-folder_1
 |---file1.py
 |---file2.py

可以通过在包含所有 .py 文件的文件夹中指定空 __init__.py 文件来完成。

看起来像这样:

-main.py
-folder_1
 |---file1.py
 |---file2.py
 |---__init__.py