Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在所有子目录中查找特定文件并将其复制到另一个目录/_Python_Loops_Copy_Subdirectory - Fatal编程技术网

Python在所有子目录中查找特定文件并将其复制到另一个目录/

Python在所有子目录中查找特定文件并将其复制到另一个目录/,python,loops,copy,subdirectory,Python,Loops,Copy,Subdirectory,我有一个C:/Print文件夹,其中包含数千个目录。它们以数字命名。每个目录都包含名称可能不同的子目录 我想输入一个数字,然后程序必须进入名为类似输入的目录,并检查所有子目录中名为与此输入相同但扩展名为.tif的文件,然后将其复制到另一个目录 例如: 输入“63783” C:/Print/63783/FCB/63783.tif->将其复制到D:/hot文件夹 我能得到一些帮助吗?我很想帮你,但我想我们需要更多的信息,是否有一个Discord帐户或服务器,我可以通过它与你联系? 请尝试此代码,看看

我有一个C:/Print文件夹,其中包含数千个目录。它们以数字命名。每个目录都包含名称可能不同的子目录

我想输入一个数字,然后程序必须进入名为类似输入的目录,并检查所有子目录中名为与此输入相同但扩展名为.tif的文件,然后将其复制到另一个目录

例如:

输入“63783”

C:/Print/63783/FCB/63783.tif->将其复制到D:/hot文件夹


我能得到一些帮助吗?

我很想帮你,但我想我们需要更多的信息,是否有一个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