我想从一个目录复制具有特定文件扩展名的文件,并将其放入另一个目录中。我尝试搜索并发现代码与即时通讯一样,但它似乎没有做任何事情,任何帮助都会很棒。
import shutil
import os
source = "/tmp/folder1/"
destination = "/tmp/newfolder/"
for files in source:
if files.endswith(".txt"):
shutil.move(files,destination)
答案 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用于连接目录和文件名(具有完整路径)。