vin*_*ich 7 python file-extension list path
我使用以下内容获取列表,其中包含名为的目录中的所有文件tokens:
import os
accounts = next(os.walk("tokens/"))[2]
Run Code Online (Sandbox Code Playgroud)
输出:
>>> print accounts
['.DS_Store', 'AmieZiel.py', 'BrookeGianunzio.py', 'FayPinkert.py', 'JoieTrevett.py', 'KaroleColinger.py', 'KatheleenCaban.py', 'LashondaRodger.py', 'LelaSchoenrock.py', 'LizetteWashko.py', 'NickoleHarteau.py']
Run Code Online (Sandbox Code Playgroud)
我想.py从此列表中的每个项目中删除扩展名.我设法单独使用os.path.splitext:
>>> strip = os.path.splitext(accounts[1])
>>> print strip
('AmieZiel', '.py')
>>> print strip[0]
AmieZiel
Run Code Online (Sandbox Code Playgroud)
我确定我做得太过分了,但是我无法找到一种方法,用for-loop从列表中的所有项目中删除文件扩展名.
这样做的正确方法是什么?
实际上,您可以使用列表解析在一行中执行此操作:
lst = [os.path.splitext(x)[0] for x in accounts]
Run Code Online (Sandbox Code Playgroud)
但是如果你想要/需要一个for循环,那么等价的代码就是:
lst = []
for x in accounts:
lst.append(os.path.splitext(x)[0])
Run Code Online (Sandbox Code Playgroud)
另外请注意我保留了os.path.splitext(x)[0]部分.这是Python中从文件名中删除扩展名的最安全的方法.os.path专用于此任务的模块中没有任何功能,手工制作解决方案str.split或容易出错.
| 归档时间: |
|
| 查看次数: |
6751 次 |
| 最近记录: |