2012-10-30 55 views
0

這是一個初學者的問題:更改變量名的raw_input一個

我做了一個函數讀取一個txt文件(由用戶選擇),使該文件中包含許多號碼列表,稱爲A.我稱這個功能爲open_file。 後來我想用文件的原始名稱,以更改列表的名稱,再加上「_values

我嘗試

file_name = raw_inpunt('Give the name of the file:') # the user chooses the file 
open_file (file_name) #A list is created 

file_name +'_'+'values' = A 

這似乎並沒有工作。有任何想法嗎?

+1

爲什麼您需要更改變量的名稱以匹配文件名?難道這不會讓其他代碼更難使用該變量嗎?如果您確實需要通過名稱引用數據,請考慮使用「dict」代替。 –

+0

你的代碼有多個問題:'raw_input'中的拼寫錯誤,你不保存'open_file()'的返回值,所以'A'可能是未定義的,'「something」= anything'是無效的Python。你以後如何使用'* _values'變量? – jfs

回答

-1

您可以嘗試使用:

vars()[file_name+"_values"] = A 

它不工作,因爲你要保存在一個字符串列表的原因。

基本上file_name+"_"+"values"是一個不是變量的字符串。因此你會得到一個錯誤。

但是,我會強烈建議你保存在字典中的每個文件名的值的列表。

values = dict() 
values[file_name] = A 

這是一種更有效的存儲值的方式。

+0

謝謝。現在,我如何將字符串轉換爲一個變量,以便它工作? – user1785070

+0

我已經更新了我的答案,您可以看到代碼。是的,如果你喜歡= D –

+0

不錯! :-)我喜歡它。 – user1785070

2

如果您將這樣做到很多文件,最好將列表存儲在字典中,而不是爲每個文件創建一個新變量。

results = {} 
.... 
file_name = raw_input('Give the name of the file:') # the user chooses the file 
open_file(file_name) #A list is created 
results[file_name] = A