使用Python重命名目录中的所有文件
我有一个文件夹,里面有很多文件,文件名的格式是这样的:
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)