我正在寫一個程序,需要大量的日期查找(財年,月,周)。爲了簡化查找,我創建了一個Dictionary,其中Key是日期(用於查找),Value是類對象。我把類def和代碼讀取日期數據(一個.txt文件)在單獨的文件,而不是主文件。順便說一句,這不是一個關於Date對象的問題。 的代碼是:Python - 可以將文本文件數據存儲在代碼中嗎?
# filename: MYDATES
class cMyDates:
def __init__(self, myList):
self.Week_Start = myList[1]
self.Week_End = myList[2]
self.Week_Num = myList[3]
self.Month_Num = myList[4]
self.Month = myList[5]
self.Year = myList[6]
self.Day_Num = myList[7]
d_Date = {} # <-- this is the dictionary of Class Objects
# open the file with all the Dates Data
myDateFile = "myDates.log"
f = open(myDateFile, "rb")
# parse the Data and add it to the Dictionary
for line in f:
myList = line.replace(' ','').split(',')
k = myList[0]
val = cMarsDates(myList)
d_Date[k] = val
的實際日期數據,從文本文件,是通過逗號隔開只是長串:(也這些字符串的尺寸爲了清楚減小,如-是類DEF 初始化)
2012-12-30, 2012-12-30, 2013-01-05, 1, 12, Dec, 2012, 30, Sun
2012-12-31, 2012-12-30, 2013-01-05, 1, 12, Dec, 2012, 31, Mon
在我的主程序我導入此數據:
import MYDATES as myDate
在這裏,我可以訪問我的dictionar y這樣的對象:
myDate.d_Date
一切工作正常。我的問題:有沒有辦法將這些數據以某種方式存儲在Python代碼中,而不是在單獨的文本文件中?該計劃將永遠需要這些相同的信息,並且永遠不會改變。這就像一個榮耀的靜態變量。我想如果我可以把它保存在一個.pyc文件中,那麼它可能會運行得更快。好吧,在你提到'更快'或者讀取外部數據和創建詞典所花費的時間之前,我需要花費很多時間......不需要很長時間(平均約爲0.00999秒,我以此爲基準)。這個問題僅僅是爲了我的啓迪 - 如果我需要再次做這樣的事情,但是在時間「可能」很重要的更大範圍內。
我想將日期數據存儲在一個數組(來自VB思維)或列表(Python),並將其提供給字典對象,但它似乎只能.append到列表,而不是給予它是一個預定的大小。然後我想到了創建字典或字典,但考慮到我擁有的數據量以及我必須通過這些字典來創建另一個類對象字典的事實,這似乎讓人感到壓倒性的。這看起來不正確。
任何人都可以建議一種不同的方式來填充我的類對象字典,除了將數據存儲在單獨的文本文件中並通過它讀取代碼?
你可以有字典文字。如果您打印(或[漂亮打印](https://docs.python.org/2/library/pprint.html))您的字典,您應該可以將其嵌入代碼中。 –