我一直在嘗試將我的python項目中的一些變量存儲在用戶可讀/可編輯的文本文件中。該文本文件佈局是這樣的:從文本文件中讀取列表
a = "hello"
b = 123
c = [4,5,6]
正如你所看到的,是意味着是一個字符串,B的整數,和c的列表。我到目前爲止的代碼去如下:
for line in file:
name = line.split('=')[0]
value = line.split('=')[1]
vars()[name] = value
它分裂在「=」行,並設置在第一部分作爲變量名,並且所述第二部分作爲該變量的值。但是,當程序運行時,b(123)和c([4,5,6])不是作爲整數和列表出現,而是作爲字符串保存。
有什麼方法可以將字符串轉換爲適當的類型嗎?或者他們是一個更好的(但仍然簡單)做我想做的事情?
任何幫助將不勝感激。謝謝!
您可以使用'eval',但是會附帶一堆安全風險。 – matsjoyce 2014-10-03 18:44:22
看看['ast.literal_eval'](https://docs.python.org/3/library/ast.html#ast.literal_eval)。不像'eval',使用起來很安全。 – 5gon12eder 2014-10-03 18:45:48
也許只是做一個功能,說:「嘿,這是一個列表?」使用'line.startswith'''''(甚至像老闆一樣的正則表達式),然後使用字符串操作將它整理出來,最後int()放入絃樂器中以最終轉換它們......會比eval/exec更安全,但實際上需要工作 – TehTris 2014-10-03 18:50:32