用Python复制文件

时间:2017-06-13 12:20:40

标签: python-3.x

我想从一个目录复制具有特定文件扩展名的文件,并将其放入另一个目录中。我尝试搜索并发现代码与即时通讯一样,但它似乎没有做任何事情,任何帮助都会很棒。

import shutil
import os
source = "/tmp/folder1/"
destination = "/tmp/newfolder/"
for files in source:
    if files.endswith(".txt"):
        shutil.move(files,destination)

2 个答案:

答案 0 :(得分:0)

我认为问题是你的循环问题。你实际上正在循环遍历字符串" tmp / folder1 /"而不是循环文件夹中的文件。你的for循环所做的是通过字母逐字逐句(t,m,p等)。

您想要的是循环源文件夹中的文件列表。这里的描述如下:How do I list all files of a directory?

在那里你可以浏览文件名,测试他们的扩展名并按照你的展示移动它们。

答案 1 :(得分:0)

你的“for source in source”从你的字符串“source”中选择一个又一个字符(for不知道source是一个路径,对他来说它只是一个基本的str对象)。

你必须使用os.listdir:

import shutil
import os

source = "source/"
destination = "dest/"
for files in os.listdir(source): #list all files and directories
    if os.path.isfile(os.path.join(source, files)): #is this a file
        if files.endswith(".txt"): 
            shutil.move(os.path.join(source, files),destination) #move the file

os.path.join用于连接目录和文件名(具有完整路径)。