【发布时间】:2016-05-27 15:54:18
【问题描述】:
我有一个文件名:name.ext
我想做以下事情:
name + id + '.' + ext for name, ext in filename.split()
或者找到一种更好的方法来获取文件名并在扩展名之前的末尾添加一个随机的 7 个字符的字符串。
这是我目前所拥有的:
def generate_id(size=7, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
def append_id(filename):
return (name + '_' + generate_id() + '.' + ext for name, ext in filename.split('.'))
但它把它当作一个生成器表达式,这不是我想要的结果。
编写append_id 函数的正确方法是什么?
【问题讨论】:
-
for name, ext in filename.split('.')不会在name和ext中为您提供集合的两个连续元素,但会尝试将每个集合的元素解压缩为两个变量:name和ext. -
是的,现在我看到了问题所在。正在尝试做一个列表组合
标签: python