如何从另一个Python文件获取字符串并导入到其他文件的函数中?
Python跨文件传递字符串及批量适配多文件方案
基础实现:extraction.py与main.py的调用
确保两个文件在同一目录下:
- extraction.py 中定义目标字符串:
A = "123"
- 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
相关产品推荐
相关产品推荐

