首页 > 解决方案 > 试图将包含 str 'meta-analysis' 的文件(.txt 格式)从一个文件夹移动到另一个-python

问题描述

import shutil
os.chdir('D:\Source')
##i for counting number of files
i=0

for file in os.listdir():
# Trying to move the identified file to a different folder
# but thows PermissionError      

    with open(file,'r',encoding='utf-8')as F:
        for line in F:
            if 'meta-analysis' in line:
                i=i+1
                print(i)
                print(line)
                #attempting to move the relevant file. 
                shutil.move(file,'D:\Research\dest\\'+file )
            else:
                pass

错误:

PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用:

预期行为:

所有文件都移动到 dest 文件夹,并且移动的文件从 Source 中删除

标签: python

解决方案


shutil当文件仍然打开时(在with子句内),您不能移动文件。首先列出要移动的文件,然后移动它们。


推荐阅读