问题描述
1) 总结问题:我有数百个文件需要重命名,但它们是重复的 5 个文件集(重复样本平均跨 - 所以不能简单地从每个文件中取一个,因为他们有不同的数据)。文件名以“f”开头,然后是一些数字(1、2、4、5、7和8),然后是治疗条件。
- 但是处理条件不同在f系列标签之前和之后。示例:“f1 con npd1”(带 1-5)和一组“f1 con npd1 wnt5a[nums 1-5]”。一组具有相同变体的“f1 os npd1[nums 1-5]”
- 这给我的 R 函数清理数据带来了问题,因为它找到了匹配项 - 所以我想在匹配的早期添加一些区分这些集合的东西,以便我的过滤器在 R 中更精确。
- 我想在只有只有npd1而不是npd1 wnt5a 的序列中添加“_”
2,3) 我尝试过的:
from glob import glob
import os
#os.chdir('C:Users/jbla12/Desktop/R Analyses/p65_project/dup files/')
pre = "_"
[os.rename(f,"{}{}".format(pre,f)) for f in glob("f2 con npd1 wnt5a*")]
- 刚刚返回一个列表 none
import fnmatch
import shutil
import os
file_pattern = 'f2 con npd1 wnt5a*'
files = os.listdir("C:Users/jbla12/Desktop/R Analyses/p65_project/dup files/")
dest = 'f2 con npd1_wnt5a'
for filename in files:
if fnmatch.fnmatch(file,file_pattern):
dest = dest + 'statistics_Intensity_Sum_Ch=3_Img=1.csv'
os.rename(filename,)
print(file)
我已经搜索过 SO 并用谷歌搜索诸如“按顺序重命名具有匹配模式的文件”之类的内容,但这里似乎存在差距。我知道这看起来很奇怪,但具有多种处理组合的重复文件/样本是复杂因素。
解决方法
我不得不重新检查正确文件夹中的文件,但这似乎成功了:
from glob import glob
import os
#os.chdir('C:Users/jbla12/Desktop/R Analyses/p65_project/dup files/')
pre = "_"
[os.rename(f,"{}{}".format(pre,f)) for f in glob("f2 con npd1 wnt5a*")]
很抱歉没有完全验证!