Python在所有子目录中查找特定文件并将其复制到另一个目录/
我有一个C:/Print文件夹,其中包含数千个目录。它们以数字命名。每个目录都包含名称可能不同的子目录 我想输入一个数字,然后程序必须进入名为类似输入的目录,并检查所有子目录中名为与此输入相同但扩展名为.tif的文件,然后将其复制到另一个目录 例如: 输入“63783” C:/Print/63783/FCB/63783.tif->将其复制到D:/hot文件夹Python在所有子目录中查找特定文件并将其复制到另一个目录/,python,loops,copy,subdirectory,Python,Loops,Copy,Subdirectory,我有一个C:/Print文件夹,其中包含数千个目录。它们以数字命名。每个目录都包含名称可能不同的子目录 我想输入一个数字,然后程序必须进入名为类似输入的目录,并检查所有子目录中名为与此输入相同但扩展名为.tif的文件,然后将其复制到另一个目录 例如: 输入“63783” C:/Print/63783/FCB/63783.tif->将其复制到D:/hot文件夹 我能得到一些帮助吗?我很想帮你,但我想我们需要更多的信息,是否有一个Discord帐户或服务器,我可以通过它与你联系? 请尝试此代码,看看
我能得到一些帮助吗?我很想帮你,但我想我们需要更多的信息,是否有一个Discord帐户或服务器,我可以通过它与你联系? 请尝试此代码,看看是否有效:
import os, shutil
number = int(input("Etner number: "))
path = "C:\\Print\\" + str(number)
os.chdir(path)
destination = "D:\\HotFolder"
path_list = os.listdir()
for sub_dir in path_list:
sub_path = path+ "\\" +sub_dir
os.chdir(sub_path)
files = os.listdir()
if str(number) + ".tif" in files:
source = sub_path + "\\" + str(number) + ".tif"
shutil.move(source, destination)
def_名称(一些输入):
导入操作系统,shutil
src_path=“src_dir_path”
src_path=os.path.join(src_path,some_input)#要查找的目录路径
dst_path=“dst_dir_path”
如果不是os.path.isdir(src#u path):#没有名为
返回
如果不是os.path.isdir(dst_路径):#目标文件夹检查
os.mkdir(dst_路径)
如果filename.endswith(“.tif”),则在os.walk(src_路径)中复制文件名中的文件名
对于根目录,复制_目标中的文件名:
origin=os.path.join(根目录,文件名)
dest=os.path.join(dst_路径,文件名)
shutil.copyfile(源、目标)#复制文件
您是否已经发现了os
模块?您可以使用os.listdir
、os.path.isdir
和os.path.join
来扫描和遍历目录。仔细想想,如果目标目录的不同深度下有多个同名文件,这将不起作用。请通过以下地址与我联系:kevinusepp@gmail.com?我会联系的。在第11行,sub_path=path+“\\\”+sub NameError:名称“sub”未定义。将其更改为“sub_dir”,循环的迭代变量。您好,它仍然不起作用。我尝试对代码进行多次更改。
def f_name(some_input):
import os, shutil
src_path = "src_dir_path"
src_path = os.path.join(src_path, some_input) # dir path to look for
dst_path = "dst_dir_path"
if not os.path.isdir(src_path): # no directory named <some_input>
return
if not os.path.isdir(dst_path): # destination folder check
os.mkdir(dst_path)
copy_targets = [(root, filename) for root, _, filenames in os.walk(src_path) for filename in filenames if filename.endswith(".tif")]
for root, filename in copy_targets:
origin = os.path.join(root, filename)
dest = os.path.join(dst_path, filename)
shutil.copyfile(origin, dest) # copy file