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

如何将.txt数据永久嵌入Python代码中?

解决方案:将静态TXT文件整合到Python代码/可执行文件中

以下是几种无需手动复制TXT内容,就能把静态文件整合到代码或可执行文件里的实用方法:

1. 用Python标准库嵌入资源(适配打包场景)

如果你的Python版本是3.7+,可以用importlib.resources直接读取同目录的静态文件,PyInstaller这类打包工具会自动识别并包含该文件:

import importlib.resources

# 读取文件内容并转为列表(按行分割,可按需调整处理逻辑)
with importlib.resources.open_text(__package__, "data.txt") as f:
    data_list = [line.strip() for line in f if line.strip()]

Python 3.6及以下版本可改用pkgutil.get_data:

import pkgutil

raw_data = pkgutil.get_data(__name__, "data.txt").decode("utf-8")
data_list = [line.strip() for line in raw_data.splitlines() if line.strip()]

2. 用PyInstaller打包时嵌入文件

若要生成单文件可执行程序,PyInstaller的--add-data参数可把TXT文件打包进去,运行时程序会自动提取到临时目录:

打包命令:

# Windows系统
pyinstaller --onefile --add-data "data.txt;." your_script.py

# macOS/Linux系统
pyinstaller --onefile --add-data "data.txt:." your_script.py

主脚本读取逻辑:

import os
import sys

def get_resource_path(relative_path):
    try:
        # 打包后的临时路径
        base_path = sys._MEIPASS
    except AttributeError:
        # 未打包时的本地路径
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# 读取文件生成列表
file_path = get_resource_path("data.txt")
with open(file_path, "r", encoding="utf-8") as f:
    data_list = [line.strip() for line in f if line.strip()]

3. 自动生成包含TXT内容的Python模块

写个辅助脚本自动把TXT内容转成Python变量,彻底避免手动复制:

辅助脚本(generate_data_module.py):

with open("data.txt", "r", encoding="utf-8") as f:
    lines = [repr(line.strip()) for line in f if line.strip()]

# 生成data.py文件,直接定义data_list变量
with open("data.py", "w", encoding="utf-8") as f:
    f.write(f"data_list = [{', '.join(lines)}]\n")

运行辅助脚本后会生成data.py,主脚本直接导入即可:

from data import data_list

# 直接使用预处理好的列表
print(data_list)

这种方法适合TXT内容固定不变的场景,后续打包仅需包含生成的data.py。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:30:00