【问题标题】:How to import py files into a main python script?如何将 py 文件导入主 python 脚本?
【发布时间】:2021-10-26 19:32:17
【问题描述】:

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

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 个类放入单独的 py 文件中,并且只有一个主文件

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

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

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

【问题讨论】:

标签: python python-import


【解决方案1】:

我强烈建议查看official documentationa 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 由解释器推断。

【讨论】:

    【解决方案2】:

    以文件结构为例:

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

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

    看起来像这样:

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

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2016-04-12
      • 1970-01-01
      相关资源
      最近更新 更多