python - Python。从列表中删除具有其他扩展名的类似项目
问题描述
我有个问题。这段代码工作后:
path, dirs, files = next(os.walk(f':stories/'))
print(files)
我有一个列表,包含不同的字符串:
['2021-07-23_14-52-16_UTC.jpg', '2021-07-23_14-52-16_UTC.mp4',
'2021-07-23_15-59-38_UTC.jpg', '2021-07-23_15-59-38_UTC.mp4',
'2021-07-23_17-23-06_UTC.jpg', '2021-07-23_17-23-06_UTC.mp4',
'2021-07-23_19-42-32_UTC.jpg', '2021-07-23_20-04-18_UTC.jpg',
'2021-07-23_20-04-18_UTC.mp4', '2021-07-23_20-38-03_UTC.jpg',
'2021-07-23_20-38-03_UTC.mp4', '2021-07-23_21-38-22_UTC.jpg',
'2021-07-23_21-38-22_UTC.mp4', '2021-07-23_21-42-07_UTC.jpg',
'2021-07-23_21-42-07_UTC.mp4', '2021-07-23_21-42-34_UTC.jpg',
'2021-07-23_21-42-34_UTC.mp4', '2021-07-24_01-01-30_UTC.jpg',
'2021-07-24_01-01-30_UTC.mp4', '2021-07-24_06-57-14_UTC.jpg',
'2021-07-24_10-22-46_UTC.jpg', '2021-07-24_12-38-47_UTC.jpg',
'2021-07-24_13-07-34_UTC.jpg']
问题是:如果有同名的 .mp4 文件,我需要删除 .jpg 文件。
我的解决方案是:
for _ in files:
temp = _.replace('.mp4', '.jpg')
if temp in files:
os.remove(_)
但这部分代码删除了每个文件。
有人可以帮助我或告诉我,我的错误是什么。谢谢。
解决方案
问题是它replace()
实际上可能不会改变任何东西,因此您要删除列表中的每个文件。试试这个:
for file in files:
temp = _.replace('.mp4', '.jpg')
if temp != file and temp in files:
os.remove(file)
推荐阅读
- swift - Swift 4 UILabel 动画颜色
- jquery - jQuery插件在angular6中不起作用
- graph - 具有 3 个不同类别的饼图文件生成器
- html - 绝对位置悬停时工具提示的灵活宽度
- websocket - 使用 DataPower 的 Websocket 处理策略
- sql-server - 外键约束引发错误,但已停用
- azure-logic-apps - 如何在逻辑应用程序中获取 HTTP 发布操作的状态码?
- windows - 服务没有响应控制功能
- php - 使用数组元素作为对象成员变量在 php 7 中不起作用
- .net - 如何在 Nginx 服务器中将 ASP.NET Core Web API dll 文件作为服务运行?