我正在尝试从下面的给定列表中创建一个用逗号分隔的字符串
['D:\\abc\\pqr\\123\\aaa.xlsx', 'D:\\abc\\pqr\\123\\bbb.xlsx', 'D:\\abc\\pqr\\123\\ccc.xlsx']
新字符串应仅包含以下文件名,并以逗号分隔
'aaa.xlsx,bbb.xlsx,ccc.xlsx'
我已经使用下面的代码实现了
n = []
for p in input_list:
l = p.split('\\')
l = l[len(l)-1]
n.append(l)
a = ','.join(n)
print(a)
但是我不想使用多行代码,而是希望使用列表理解或正则表达式在单行中实现。
预先感谢...
答案 0 :(得分:4)
只需做一个
main_list = ['D:\\abc\\pqr\\123\\aaa.xlsx', 'D:\\abc\\pqr\\123\\bbb.xlsx', 'D:\\abc\\pqr\\123\\ccc.xlsx']
print([x.split("\\")[-1] for x in main_list])
输出:
['aaa.xlsx', 'bbb.xlsx', 'ccc.xlsx']
如果您想获取此字符串,只需执行
print(",".join([x.split("\\")[-1] for x in main_list]))
输出:
aaa.xlsx,bbb.xlsx,ccc.xlsx
另一种方法是:
print(",".join(map(lambda x : x.split("\\")[-1],main_list)))
输出:
aaa.xlsx,bbb.xlsx,ccc.xlsx
请确保 os.path.basename 与操作系统有关,并且可能在跨平台脚本上产生问题。
答案 1 :(得分:2)
将os.path.basename
与str.join
一起使用
例如:
import os
data = ['D:\\abc\\pqr\\123\\aaa.xlsx', 'D:\\abc\\pqr\\123\\bbb.xlsx', 'D:\\abc\\pqr\\123\\ccc.xlsx']
print(",".join(os.path.basename(i) for i in data))
输出:
aaa.xlsx,bbb.xlsx,ccc.xlsx