在Python中使用通配符移动文件

时间:2015-03-07 08:51:20

标签: windows file python-2.7 wildcard

所以我试图将所有以“A”开头的文件移动到某个目录。现在我现在Windows命令提示符不支持这种方法:

move A* A_Dir

但这可以与Python结合找到方法吗?或者我将不得不浏览每个单独的文件? 如:

contents=os.listdir('.')
for file in content:
    if file[0] == 'A':
        os.system("move %s A_Dir" % file)

......等有没有更简单,更快捷的其他解决方案? -Thanks!

1 个答案:

答案 0 :(得分:2)

在Windows上:此示例移动以" A"开头的文件来自" C:\ 11"到" C:\ 2"

选项#1:如果您使用批处理文件,请创建批处理文件(movefiles.bat),如下所示:

<强> movefiles.bat:

move /-y "C:\11\A*.txt" "C:\2\"

从python脚本执行此批处理文件,如下所示:

import os
batchfile = "C:\\1\\movefiles.bat"
os.system( "%s" % batchfile)

move command

选项#2: 使用glob&amp; shutil

import glob
import shutil
for data in glob.glob("C:\\11\\A*.txt"):
    shutil.move(data,"C:\\2\\")

如果我们想以move所有filesdirectory开头的A:

import glob
import shutil

for data in glob.glob("C:\\11\\A*"):
        shutil.move(data,"C:\\2\\")

基于@eryksun评论,我添加了if not os.path.isdir(data):,如果仅需要移动以A开头的files,则在这种情况下,目录将被忽略。

import glob
import shutil
import os
for data in glob.glob("C:\\11\\A*"):
    if not os.path.isdir(data):
        shutil.move(data,"C:\\2\\")