删除文件夹中文件的副本

2024-10-03 21:30:52 发布

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

我有这个文件夹

of

让我们考虑文件:<强>子OAS300、27、SES、D1300、Run-01T1W、NII、Gz < /强>和<强>子OAS300、27、SES、D1300、Run-02Y-T1W.NII.Gz >。它们名称的首字母部分相同,即sub-OAS30027\u ses-d1300

我想用Python编写一个脚本,在具有相同sub-OAS30027\u ses-d1300的文件中,在具有相同sub-OAS30031\u ses-d0427的文件中,仅提取一个文件,依此类推。提取哪个文件并不重要,只需要一个

这是因为sub-OAS30027\u ses-d1300\u run-01\u T1w.nii.gzsub-OAS30027\u ses-d1300\u run-02\u T1w.nii.gz就像拷贝一样,我不想要它们

你能帮我吗


Tags: 文件run文件夹sesgzniit1wd1300
2条回答

使用reos模块:

PS:始终保留原始文件的副本如果出现问题,可以再次使用。

import os,re
file = os.listdir()
match = []
for i in file:
    t = re.findall('_ses\-d(.*?)_',i)
    if t :
        if t[0] not in match :
            match.append(t[0])
        else :
            os.remove(i)

我试着让它尽可能简单。我希望这有助于:

import os

directory = 'directory_name' # put in the directory you want to search through
duplicate_file_lst = []

# loop through directory files
for filename in os.listdir(directory):
   if filename.startswith("sub-OAS30027_ses-d1300"):
       duplicate_file_lst.append(filename)

# Only keeps the first file in the list        
for file in duplicate_file_lst:
   if file != duplicate_file_lst[0]:
       os.remove(file)

相关问题 更多 >