根据python列表中的出现情况移动文件

2024-09-27 07:32:28 发布

您现在位置:Python中文网/ 问答频道 /正文

您是否知道如果您的文件夹中有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

感谢您的帮助:)


Tags: 文件数据文件夹fastafaseq2seq1seq5
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:28
  • 使用os.listdir()扫描目录
  • 将文件基数与set(从dataframe或其他数据帧中提取)匹配,以便快速查找
  • 匹配时移动/删除

像这样:

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)

相关问题 更多 >

    热门问题