簡體   English   中英

在另一個項目中使用保存在項目中的變量(python)

[英]Use, in another project, a variable saved in a project (python)

我有一個名為project1的項目,我在其中獲取了一個 big.txt 文件(大約 1 GB)。 我使用以下代碼制作了一個列表,其中包含文本的每一行作為元素:

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

然后我編輯列表中的項目,這對我的問題並不重要。

我需要在另一個項目( project2 )中使用變量lista ,但我不想通過以下方式導入它

from project1 import lista

因為這樣做我必須運行project1中的所有代碼才能獲取 .txt 文件中的文本並編輯列表。

所以我的目標是使用lista而不必運行需要時間的代碼,因為lista總是相同的。

重要筆記

  1. 我不能只在 project1 中打印它,復制 output 並將其粘貼到 project2 中以將其用作變量,因為列表太長了。
  2. 我想到的一種方法是將lista保存為 a.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 變量保存為一個文件,該文件保存其類型和直接將其作為該類型的變量導入項目中,在本例中為列表)

我可以建議您使用txt.readlines()而不是list(txt)來獲取行,除非文件中的每一行都包含一個字符。 在 Json/Pickle 中; dump/dumps dumps 使您能夠將 object 保存到打開的文件中(您可以將列表保存到文件中)或分別獲取將保存在可寫文件對象中的源/字節; load/loads允許從相應的轉儲中恢復內容。 就個人而言,我只會使用文件的路徑創建一個新列表,或者將代碼封裝在另一個腳本中,以降低導入速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM