【问题标题】:Import/include file to Python program将文件导入/包含到 Python 程序
【发布时间】:2019-01-10 21:53:23
【问题描述】:

我正在编写一个 Python 程序,它读取文件并根据用户提供的信息和输入执行任务。文件始终相同,用户不会修改。如何在我的程序中导入/包含该文件,以便用户不必将文件复制到他们的目录中以使程序正常工作?这主要是我试图避免的。

【问题讨论】:

  • 你的程序是从用户目录运行还是被导入?
  • 您的 Python 应用程序必须知道文件的位置。您有两个选择:将文件中的数据移动到 python 应用程序中,或者将文件安装到系统上的已知位置。
  • 文件是纯文本文件吗?
  • 理想的解决方案是设计要安装的程序——无论是通过pip,还是像 WIndows 安装程序/Mac DMG/等。由PyInstaller 之类的东西构建。然后,您使用setuptools Resource Manager APIsetuptools 确保无论文件被安装在哪里(即使它被埋在 .exe 文件中),您都可以调用 resource_stream 来打开它(或者只调用 resource_string 来获取它的内容)。跨度>
  • This question 展示了如何很好地使用setuptools

标签: python python-3.x


【解决方案1】:

假设您的程序是单个脚本,并且文件是常量,您甚至可以将其包含在脚本中(注意多行数据的三引号):

information = '''
ALL 
THE INFORMATION GOES HERE!
'''

如果您需要存储的信息包含任何二进制数据或反斜杠 (\) 等字符,您可以将数据存储在 base 64 中,并在导入时解码数据:

import base64

information = 'CkFMTApUSEUgSU5GT1JNQVRJT04gR09FUyBIRVJFIQo='
information = base64.b64decode(information)

【讨论】:

    【解决方案2】:

    如果程序从互联网上下载该信息文件可以吗?如果是这样,您可以使用此处提供的信息:https://developers.google.com/drive/api/v3/quickstart/python

    然后,您可以将信息上传到云端硬盘并让用户根据需要下载。

    否则,请按照我面前答案的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2021-08-14
      • 2020-10-09
      • 2010-09-30
      • 2015-08-20
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多