Python 上载整个文件夹的文件时,如何分配所有相关变量名?
假设我正在上传Python 上载整个文件夹的文件时,如何分配所有相关变量名?,python,Python,假设我正在上传 Desktop/folder/dog.jpg, Desktop/folder/fish.jpg, Desktop/folder/lizard.jpg 理论上我能做些类似的事情吗 a = ['Desktop/folder/dog.jpg', 'Desktop/folder/fish.jpg', 'Desktop/folder/lizard.jpg'] for x in a b = read(x) regex(x)= b 因此,如果不手动执行每项操作,它最终会像
Desktop/folder/dog.jpg, Desktop/folder/fish.jpg, Desktop/folder/lizard.jpg
理论上我能做些类似的事情吗
a = ['Desktop/folder/dog.jpg', 'Desktop/folder/fish.jpg', 'Desktop/folder/lizard.jpg']
for x in a
b = read(x)
regex(x)= b
因此,如果不手动执行每项操作,它最终会像
dog=read(dog.jpg)
fish=read(fish.jpg)
lizard=read(lizard.jpg)
?这里有一个从文件名中提取名称的函数:
def getname(astr):
import os.path
name = os.path.basename(astr)
name = os.path.splitext(name)[0]
return name
从您的文件名列表中,我可以得到“变量”名称列表:
In [150]: filenames = ['Desktop/folder/dog.jpg', 'Desktop/folder/fish.jpg', 'Desktop/folder/lizard.jpg']
In [155]: [getname(i) for i in filenames]
Out[155]: ['dog', 'fish', 'lizard']
但与其尝试将它们放在全局名称空间中,我建议将它们收集到字典中:
In [156]: adict = {getname(i): i for i in filenames}
In [157]: adict
Out[157]:
{'dog': 'Desktop/folder/dog.jpg',
'fish': 'Desktop/folder/fish.jpg',
'lizard': 'Desktop/folder/lizard.jpg'}
或者如果使用读取功能:
adict = {getname(i): read(i) for i in filenames}
通常在Python中,在列表或字典中收集对象(如这些图像)比将每个对象分配给单独的变量更有用
写adict['fish']
几乎和写fish
一样简单。有了字典,你可以轻松地“循环”整个集合
for k,v in adict.items():
print('name:',k)
display(v)
注释链接到一整串关于赋值给变量的SO问题,以及为什么通常这是一个糟糕的主意。我不明白您试图做什么,尤其是伪代码为函数调用赋值的地方。您可以参考与您想要的答案类似的答案