我在目录中(在MAC上)有数百张图像,我想重命名和重新定位。
以下是我正在使用的文件命名模式
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos001_S001_z01.tif
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos001_S001_z02.tif
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos001_S001_z03.tif
...
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos002_S001_z01.tif
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos002_S001_z02.tif
131110 His-RFP female soft wpp 488 sens 546 His-RFP_Mark_and_Find_001_Pos002_S001_z03.tif
...
请注意,PosXXX和zXX正在更改文件名。
我希望这些文件没有特别的顺序:
1)将所有文件重命名为以下格式 -
BF_Position001_time101.tif
BF_Position001_time102.tif
BF_Position001_time103.tif
...
BF_Position002_time101.tif
BF_Position002_time102.tif
BF_Position002_time103.tif
...
PosXXX - > PositionXXX和zXX - > time1XX
2)为原始目录中的每个位置创建一个目录
3)将相应的重命名文件放入正确的新创建的目录中。
感谢您的帮助。
答案 0 :(得分:2)
f <- list.files(pattern="His-RFP_Mark_and_Find_001_Pos..._S001_z..\\.tif")
pos <- substring(f, 75, 76)
zzz <- substring(f, 84, 85)
f2 <- file.path(paste0("Position", pos), paste0("BF_Position", pos, "_time1", zzz, ".tif"))
lapply(paste0("Position", unique(pos)), dir.create)
file.rename(f, f2)
答案 1 :(得分:1)
嗯,值得一提的是,我将如何在python中做到这一点......
要使用此功能,请将文件另存为renamer.py
(或其他内容)。为简单起见,我猜它只是把它放在你的图像文件夹中。然后在终端窗口cd
到该目录,键入chmod +x renamer.py
。然后输入./renamer.py
。
#!/usr/bin/env python
import re
import os
import glob
pattern = r'.*_Pos(\d+)_S\d+_z(\d+)\.tif'
Flist = glob.glob('*.tif')
for f in Flist:
search=re.search(pattern,f)
if search:
P,T = search.groups()
FolderName = "Position"+P
FileName = "BF_Position{}_time1{}.tif".format(P,T)
try:
os.renames(f,os.path.join(FolderName,FileName))
except OSError:
print f
print os.path.join(FolderName,FileName)