【发布时间】: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 会永远一样。
重要提示
- 我不能只在 project1 中打印它,复制输出并将其粘贴到 project2 中以将其用作变量,因为列表太长了。
- 我想到的一种方法是将 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)
- 重要提示:我所描述的方式对我来说看起来很复杂,所以这只是一个想法,但我相信还有更好的方法(也许有一种方法可以将 python 变量保存为保存其类型等信息的文件,并将其作为该类型的变量直接导入项目中,在本例中为列表)
【问题讨论】:
标签: python python-3.x string list variables