具有通配符支持的Python Windows文件复制

发布于 2021-01-29 16:26:49

我一直在这样做:

result = subprocess.call(['copy', '123*.xml', 'out_folder\\.', '/y'])
if result == 0: 
    do_something()
else:
    do_something_else()

直到今天,我开始研究pywin32模块,然后才看到诸如win32file.CopyFiles()之类的函数,但是后来我发现它可能不支持将文件复制到目录中。也许此功能隐藏在某个地方,但我还没有找到它。

我也尝试过“ glob”和“ shutil”的组合,但是如果有很多文件,“ glob”的运行速度会非常慢。

那么,您如何用Python模拟该Windows命令?

copy 123*.xml out_folder\. /y
关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    以下代码提供了一个可移植的实现。

    请注意,我使用的是iglob(在Python 2.5中添加了),它创建了一个生成器,因此它不会首先加载内存中的整个文件列表(glob会这样做)。

    from glob import iglob
    from shutil import copy
    from os.path import join
    
    def copy_files(src_glob, dst_folder):
        for fname in iglob(src_glob):
            copy(fname, join(dst_folder, fname))
    
    if __name__=='__main__':
        copy_files("123*.xml", "out_folder")
    

    附加文档:



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看