遍历目录、子目录,以获取具有专门 ext 的文件。 , 复制到新目录
Iterate through directories, subdirectories, to get files with specialized ext. , copy in new directory
我有一个问题,我已经解决了所有其他主题的类似问题,但我没有得到解决。
我有一个文件夹,其中有两个子文件夹。它们里面有很多文件,但我只需要扩展名为 .trl
的文件。我需要复制它们并将它们保存在一个已经创建的新文件夹中。
我的代码没有给我错误,但我没有看到任何结果。我做错了什么?
import os
import shutil
import fnmatch
directory = "/home/.../test_daten"
ext = ('.trl')
dest_dir = "/home/.../test_korpus"
for root, dirs, files in os.walk(directory):
for extension in ext:
for filename in fnmatch.filter(files, extension+'.trl'):
source = (os.path.join(root, filename))
shutil.copy2(source, dest_dir)
使用os.walk()
并找到所有文件。然后用endswith()
查找以.trl
.
结尾的文件
示例代码:
import os, shutil;
directory = "/home/.../test_daten";
dest_dir = "/home/.../test_korpus";
filelist = [];
for root, dirs, files in os.walk(directory):
for file in files:
filelist.append(os.path.join(root,file));
for trlFile in filelist:
if trlFile.endswith(".trl"):
shutil.copy(trlFile, dest_dir);
也许您的问题是 fnmatch.filter(files, extension+'.trl')
。你有来自 for extension in ext:
的 extension
它将循环遍历变量 ext
并每次给你一个来自它的字母。 Your extension+'.trl
将是 ..trl, t.trl, l.trl
import os
import shutil
directory = "/home/.../test_daten"
dest_dir = "/home/.../test_korpus"
for root, _, files in os.walk(directory): #Get the root, files
for x in files:
if x.endswith('.trl'): #Check the extension
shutil.copy2(f'{root}/{x}', dest_dir)
import os
import shutil
import fnmatch
source = "/home/.../test_daten"
ext = '*.trl'
target = "/home/.../test_korpus"
for root, _, files in os.walk(source):
for filename in fnmatch.filter(files, ext):
shutil.copy2(os.path.join(root, filename), target)
我有一个问题,我已经解决了所有其他主题的类似问题,但我没有得到解决。
我有一个文件夹,其中有两个子文件夹。它们里面有很多文件,但我只需要扩展名为 .trl
的文件。我需要复制它们并将它们保存在一个已经创建的新文件夹中。
我的代码没有给我错误,但我没有看到任何结果。我做错了什么?
import os
import shutil
import fnmatch
directory = "/home/.../test_daten"
ext = ('.trl')
dest_dir = "/home/.../test_korpus"
for root, dirs, files in os.walk(directory):
for extension in ext:
for filename in fnmatch.filter(files, extension+'.trl'):
source = (os.path.join(root, filename))
shutil.copy2(source, dest_dir)
使用os.walk()
并找到所有文件。然后用endswith()
查找以.trl
.
结尾的文件
示例代码:
import os, shutil;
directory = "/home/.../test_daten";
dest_dir = "/home/.../test_korpus";
filelist = [];
for root, dirs, files in os.walk(directory):
for file in files:
filelist.append(os.path.join(root,file));
for trlFile in filelist:
if trlFile.endswith(".trl"):
shutil.copy(trlFile, dest_dir);
也许您的问题是 fnmatch.filter(files, extension+'.trl')
。你有来自 for extension in ext:
的 extension
它将循环遍历变量 ext
并每次给你一个来自它的字母。 Your extension+'.trl
将是 ..trl, t.trl, l.trl
import os
import shutil
directory = "/home/.../test_daten"
dest_dir = "/home/.../test_korpus"
for root, _, files in os.walk(directory): #Get the root, files
for x in files:
if x.endswith('.trl'): #Check the extension
shutil.copy2(f'{root}/{x}', dest_dir)
import os
import shutil
import fnmatch
source = "/home/.../test_daten"
ext = '*.trl'
target = "/home/.../test_korpus"
for root, _, files in os.walk(source):
for filename in fnmatch.filter(files, ext):
shutil.copy2(os.path.join(root, filename), target)