簡體   English   中英

使用數組變量Python的名稱保存文件

[英]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)

但是在我的程序中有不同的變量,我希望當我調用文件保存功能時,文件名應自動作為變量名本身使用。
例如,如果變量是questionanswer ,那么當我說save() ,文件名應自動為question.txtanswer.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.

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