使用Python重命名目录中的所有文件

3 投票
2 回答
10916 浏览
提问于 2025-05-01 08:15

我有一个文件夹,里面有很多文件,文件名的格式是这样的:

1 or 2 numbers_S followed by 1 or 2 numbers_L001_R1 or R2_001.fastq

Examples: 1_S1_L001_R1_001.fastq or 14_S14_L001_R2_001.fastq

我想把这些文件的名字改成这样:1_R1.fastq 14_R2.fastq

我已经找到了一个可以匹配这些文件名的regexp(正则表达式),并且可以在TextWrangler里成功进行搜索和替换。下面是我想到的正则表达式:

Search: (\d+)\wS\d+\wL001\w(R\d)\w001(\.fastq)
Replace: \1_\2\3 (or $1_$2$3 depending on the program)

不过,我想知道怎么用一个简单的Python脚本来批量重命名这些文件。如果有人能给我一些建议,我会非常感激。

谢谢!

暂无标签

2 个回答

3

可以考虑使用一个叫os的包,里面有个功能是os.rename(src, dst)。你可以在这里找到相关的说明文档 这里

16

你可以这样做

 import glob, re, os

 for filename in glob.glob('/some/dir/*.fastq'):
     new_name = re.sub(pattern, r'\1_\2\3', filename)
     os.rename(filename, new_name)

撰写回答