假设我正在上传
"frameworks": {
"netstandard1.5": {}
}
"frameworks": {
"netstandard1.5": {
"imports": "portable-net45+netcore45+wp8"
}
}
我理论上可以做类似的事吗
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
答案 0 :(得分:1)
这是一个从文件名中提取名称的函数:
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'}
或者如果使用read
函数:
adict = {getname(i): read(i) for i in filenames}
通常在Python中,在列表或字典中收集对象(如这些图像)更有用,而不是尝试将每个对象分配给单独的变量。
编写adict['fish']
和fish
几乎一样容易。使用字典,您可以轻松地循环播放#39;在整个集合
for k,v in adict.items():
print('name:',k)
display(v)
评论链接到关于分配给变量的一整串SO问题,以及为什么通常这是一个糟糕的想法。