[英]Saving file with the name of the array variable Python
我願意使用與變量相同的名稱保存文件。 請參見以下代碼:
training = np.arange(200)
np.savetxt(training.txt,training)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'txt'
當我使用雙引號時,它將很明顯地起作用:
np.savetxt("training.txt",training)
但是在我的程序中有不同的變量,我希望當我調用文件保存功能時,文件名應自動作為變量名本身使用。
例如,如果變量是question
或answer
,那么當我說save()
,文件名應自動為question.txt
或answer.txt
建議我可以做些什么。
沒有好的方法可以正常工作。 Python中的變量只是對實際對象的引用。 名字沒關系。
你需要一種方法來你的變量存儲與給定的名稱,這是關聯表是一下,這是一個dict
Python編寫的。
這類似於:
variables={}
variables["training"] = np.arange(200)
for key, val in variables.items():
np.savetxt(key, value)
在Python中使用標識符名稱很麻煩(並且不打算作為慣例)。 您為什么不嘗試使用字典?
import np
my_dict = dict()
def save(name: str):
np.savetext('{}.txt'.format(name), my_dict[name])
my_dict['training'] = np.arange(200)
save('training')
一種非常駭人聽聞的方法是從本地符號表中獲取變量名稱。 如果您知道只有一個數組,則可以簡單地得到第一個結果。
>>>
>>> import numpy as np
>>> training = np.arange(200)
>>> def getndarrayname(env):
... return list(filter(lambda x: isinstance(env[x], np.ndarray), env.keys()))
...
>>> getndarrayname(locals())
['training']
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.