【问题标题】:Use, in another project, a variable saved in a project (python)在另一个项目中使用保存在项目中的变量(python)
【发布时间】:2021-04-12 12:39:30
【问题描述】:

我有一个名为 project1 的项目,我在其中获取一个大的 .txt 文件(大约 1 GB)。我制作了一个列表,其中包含文本的每一行作为元素,代码如下:

txt = open('<path>', 'r', encoding="utf8")
lista = list(txt)

然后我编辑列表中的项目,这对我的问题并不重要。

我需要在另一个项目(project2)中使用变量lista,但我没有想通过以下方式导入

from project1 import lista

因为这样做我必须运行 project1 中的所有代码来获取 .txt 文件中的文本并编辑列表。

所以我的目标是使用 lista 而不必运行需要时间的代码,因为 lista 会永远一样。

重要提示

  1. 我不能只在 project1 中打印它,复制输出并将其粘贴到 project2 中以将其用作变量,因为列表太长了。
  2. 我想到的一种方法是将 lista 保存为 .txt 文件中的字符串(我们称之为 lista.txt),打开 project2 中的 .txt 文件,并以某种方式告诉 python lista.txt 中的字符串 实际上是一个列表。更好理解的示例:

在项目 1 中

file_text = open('<path>\\lista.txt', 'w', encoding="utf8")
lista = ['<string_1>', '<string_2>', ..., '<string_n>']
file_text.write(f'{lista}')
file_text.close()

在项目 2 中

file_text = open('<path>\\lista.txt', 'r', encoding="utf8")
list_as_string = file_text
def string_to_list(input_string):
    #way to transform the list_as_string into the original "lista" variable, which is a list
    #return list
string_to_list(list_as_string)
  1. 重要提示:我所描述的方式对我来说看起来很复杂,所以这只是一个想法,但我相信还有更好的方法(也许有一种方法可以将 python 变量保存为保存其类型等信息的文件,并将其作为该类型的变量直接导入项目中,在本例中为列表)

【问题讨论】:

  • 您在寻找json 还是pickle
  • 我实际上不知道如何使用这些库,所以我不知道:每个好的解决方案都被接受
  • 谢谢!如果你想写答案我会接受@kendfss

标签: python python-3.x string list variables


【解决方案1】:

我建议您使用txt.readlines() 而不是list(txt) 来获取行,除非文件中的每一行都包含一个字符。在 Json/Pickle 中; dump/dumps 使您能够将对象保存到打开的文件中(您可以将列表保存到文件中)或分别获取将保存在可写文件对象中的源/字节; load/loads 允许从相应的转储中恢复内容。就我个人而言,我只会使用文件的路径创建一个新列表,或者将代码封装在另一个脚本中,以降低导入速度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    相关资源
    最近更新 更多