其他分享
首页 > 其他分享> > 我如何从完整的文件名列表中删除文件扩展名?

我如何从完整的文件名列表中删除文件扩展名?

作者:互联网

我正在使用以下内容来获取包含令牌目录中所有文件的列表:

import os    
accounts = next(os.walk("tokens/"))[2]

输出:

>>> print accounts
['.DS_Store', 'AmieZiel.py', 'BrookeGianunzio.py', 'FayPinkert.py', 'JoieTrevett.py', 'KaroleColinger.py', 'KatheleenCaban.py', 'LashondaRodger.py', 'LelaSchoenrock.py', 'LizetteWashko.py',  'NickoleHarteau.py']

我想从此列表的每个项目中删除扩展名.py.我设法使用os.path.splitext单独进行了此操作:

>>> strip = os.path.splitext(accounts[1])
>>> print strip
('AmieZiel', '.py')
>>> print strip[0]
AmieZiel

我确定我在做些过分的事情,但是我想不出一种用for循环从列表中所有项目中去除文件扩展名的方法.

正确的做法是什么?

解决方法:

您实际上可以使用list comprehension在一行中执行此操作:

lst = [os.path.splitext(x)[0] for x in accounts]

但是,如果您想要/需要一个for循环,等效代码将是:

lst = []
for x in accounts:
    lst.append(os.path.splitext(x)[0])

还要注意,我保留了os.path.splitext(x)[0]部分.这是Python中从文件名中删除扩展名的最安全方法. os.path模块中没有专门用于此任务的功能,因此无法使用str.split手工制作解决方案,否则容易出错.

标签:python,list,path,file-extension
来源: https://codeday.me/bug/20191010/1888014.html