Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 上载整个文件夹的文件时,如何分配所有相关变量名?_Python - Fatal编程技术网

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问题,以及为什么通常这是一个糟糕的主意。

我不明白您试图做什么,尤其是伪代码为函数调用赋值的地方。您可以参考与您想要的答案类似的答案