You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从另一个Python文件获取字符串并导入到其他文件的函数中?

Python跨文件传递字符串及批量适配多文件方案

基础实现:extraction.py与main.py的调用

确保两个文件在同一目录下:

  1. extraction.py 中定义目标字符串:
A = "123"
  1. main.py 中导入模块并调用函数:
# main.py
import extraction

def exportData(data):
    # 替换为你的实际业务逻辑,示例为打印数据
    print(data)

if __name__ == "__main__":
    exportData(extraction.A)

运行main.py即可实现和exportData("123")完全一致的效果。

适配多extraction文件(无需修改main.py)

如果要新增extraction1.py、extraction2.py等文件且不想改动main.py,可通过动态导入实现:

方式1:命令行传参指定模块

修改main.py为动态导入逻辑:

# main.py
import sys
import importlib

def exportData(data):
    # 替换为你的业务逻辑
    print(data)

if __name__ == "__main__":
    # 默认使用extraction模块,可通过命令行参数指定其他模块
    module_name = sys.argv[1] if len(sys.argv) > 1 else "extraction"
    # 动态导入指定模块
    extraction_module = importlib.import_module(module_name)
    # 调用函数,假设所有extraction文件的字符串变量都为A
    exportData(extraction_module.A)

使用时:

  • 调用extraction.py:python main.py
  • 调用extraction1.py:python main.py extraction1
  • 调用extraction2.py:python main.py extraction2

方式2:配置文件指定模块

创建config.txt文件,内容为要使用的模块名(比如extraction1),修改main.py读取配置:

# main.py
import importlib

def exportData(data):
    # 替换为你的业务逻辑
    print(data)

if __name__ == "__main__":
    # 读取配置文件获取模块名,默认用extraction
    with open("config.txt", "r") as f:
        module_name = f.read().strip() or "extraction"
    extraction_module = importlib.import_module(module_name)
    exportData(extraction_module.A)

切换模块时,只需修改config.txt的内容,无需改动main.py。

注意事项

  • 所有extraction类文件需与main.py在同一目录,或处于Python的搜索路径中
  • 建议统一所有extraction文件的字符串变量名(比如都用A),避免main.py额外适配;若变量名不同,可在配置文件中同时指定模块名和变量名(如extraction1,B),再在main.py中解析拆分。

内容的提问来源于stack exchange,提问作者craig3656

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:43:26