如果你有一个由fasta文件填充的文件夹,例如:
,你知道是否可以seq1.fa
seq2.fa
seq3.fa
seq4.fa
seq5.fa
seq6.fa
seq7.fa
...
seq1000.fa
并且仅保留或移动到新文件夹中的数据帧中存在的序列,例如:
seq_names
seq1
seq3
seq8
seq89
那只用python吗?
然后新文件夹:
seq1.fa
seq3.fa
seq8.fa
seq89.fa
谢谢你的帮助:)
答案 0 :(得分:3)
os.listdir()
set
匹配(从数据框或其他内容中提取)以进行快速查找import os,shutil
matches = {"seq1","seq3","seq8","seq89"}
for filename in os.listdir(directory):
if os.path.splitext(filename)[0] in matches:
# move
shutil.move(os.path.join(filename,directory),new_directory)
# or just copy:
# shutil.copy(os.path.join(filename,directory),new_directory)
只删除其他文件:
if not os.path.splitext(filename)[0] in matches:
# remove
os.remove(os.path.join(filename,directory),new_directory)