我正在尝试替换文件列表中的部分文件扩展名。我希望能够遍历项目(文件),并删除扩展名。当 re.sub 作为第三个参数需要一个字符串时,我不知道如何适当地循环遍历列表中的项目。例如。re.sub(模式,repl,字符串,计数= 0,标志= 0)
import re
file_lst = ['cats1.fa', 'cats2.fa', 'dog1.fa', 'dog2.fa']
file_lst_trimmed =[]
for file in file_lst:
file_lst_trimmed = re.sub(r'1.fa', '', file)
Run Code Online (Sandbox Code Playgroud)
这里出现的问题是 re.sub 需要一个字符串,我希望它遍历字符串列表。
感谢您的任何建议!
Jam*_*mes 19
您可以使用列表理解来构造具有清理过的文件名的新列表。 \d是匹配单个字符的正则表达式,并且$只匹配字符串的末尾。
file_lst_trimmed = [re.sub(r'\d\.fa$', '', file) for file in file_lst]
Run Code Online (Sandbox Code Playgroud)
结果:
>>> file_lst_trimmed
['cats', 'cats', 'dog', 'dog']
Run Code Online (Sandbox Code Playgroud)
你可以试试这个:
import re
file_lst = ['cats1.fa', 'cats2.fa', 'dog1.fa', 'dog2.fa']
final_list = [re.sub('\d+\.\w+$', '', i) for i in file_lst]
Run Code Online (Sandbox Code Playgroud)
输出:
['cats', 'cats', 'dog', 'dog']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15149 次 |
| 最近记录: |