根据一个文件的文件名,将文件复制到另一个目录中

2024-05-13 13:46:04 发布

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

一个文件写一些文件名列表,如有文件名

f1
f2 
f3

在一个目录中,有许多包含这些文件的文件,例如

F2
f1
F3
f2
f3

我想复制文件列表中出现的文件。我的脚本的错误是*TypeError*,如下所示

import sys
import shutil,errno
import os
srcDir = 'Root'
dstDir = 'De'
with open('file.txt','r') as f:
 read_filename = f.read()
f.closed
for files in os.walk(srcDir)
  if files in read_filename:
     shutil.move(srcDir,dstDir)

Tags: 文件inimport列表reados文件名files
1条回答
网友
1楼 · 发布于 2024-05-13 13:46:04

您需要将第一个文件转换为(用于快速成员身份测试)。您还使用了os.walk,它提供了三条信息、目录路径、子目录列表和该目录中的文件列表:

import sys
import shutil,errno
import os
srcDir = 'Root'
dstDir = 'De'

with open('file.txt','r') as f:
    read_filenames = {fname.strip() for fname in f}  # set comprehension

for root, directories, files in os.walk(srcDir):
    for filename in read_filenames.intersection(files):
        shutil.move(os.path.join(root, filename), dstDir)

.intersection()调用返回read_filenames集中也在files列表中的所有元素

注意,我根据root变量(文件所在目录的路径)和文件名使用os.path.join(),告诉shutil.move()要移动到dstDir的文件的完整路径

相关问题 更多 >