在python中将文件夹中的文件复制到一个目录上

2024-06-07 00:33:48 发布

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

我有一个文件夹,其中有几个文件,我想复制一个目录(这个文件夹也有一些文件,我不想复制)。我知道有os.chdir(“..”)命令将我移动到目录。但是,我不知道如何将需要的文件复制到这个目录中。任何帮助都将不胜感激。


更新:

这就是我现在所拥有的:

from shutil import copytree, ignore_patterns

copytree("/Users/aaron/Desktop/test/", "/Users/aaron/Desktop/", ignore=ignore_patterns('*.py', '*.txt'))

我得到以下错误:

Traceback (most recent call last):
  File "update.py", line 61, in <module>
    copytree("/Users/aaron/Desktop/test/", "/Users/aaron/Desktop/", ignore=ignore_patterns('*.py', '*.txt'))
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/shutil.py", line 146, in copytree
    os.makedirs(dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 17] File exists: '/Users/aaron/Desktop/'

Tags: 文件inpy目录文件夹oslineusers
1条回答
网友
1楼 · 发布于 2024-06-07 00:33:48

shutil模块可以做到这一点,特别是copyfilecopycopy2copytree函数。http://docs.python.org/library/shutil.html

你可能想要这样的东西:

import os
import shutil

fileList = os.listdir('path/to/source_dir')
fileList = ['path/to/source_dir/'+filename for filename in fileList]

for f in fileList:
    shutil.copy2(f, 'path/to/dest_dir/')

当然,您可以在调用os.listdir()期间过滤掉一些文件名。例如

fileList = [filename for filename in os.listdir('path/to/source_dir') if filename[-3] is '.txt']

而不是fileList = os.listdir('path/to/source_dir')来获取.txt文件

相关问题 更多 >