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

时间:2014-11-03 15:35:53

标签: python regex rename batch-rename

我有一个目录,其中包含许多具有以下格式的文件:

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 个答案:

答案 0 :(得分:11)

你可以做这样的事情

 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)

答案 1 :(得分:2)

考虑使用 os 包,然后可以使用 os.rename(src,dst)。文档是正确的here