如何在Python中使用通配符复制多个文件?

时间:2019-04-19 20:53:18

标签: python python-3.x file wildcard

我正在尝试使用多个源位置和通配符作为文件名的一部分将文件从一个文件夹复制到另一个文件夹,但是由于某些原因,glob.glob无法正常工作(每个文件夹中只有一个文件)通配符,但快照的版本正在更改)-出现错误need string or buffer, list found

部分python代码如下:

content=[]
tomcatFiles=[]

def addToContent(srcFile, destFile):
    info={'src': srcFile, 'dest': destFile}
    content.append(info)

def addToTomcatFile(srcFile, destFile):
    info={'src': srcFile, 'dest': destFile}
    tomcatFiles.append(info)

def main():
    baseDir=sys.argv[1]
    intellijProjDir=sys.argv[2]

    deploy_dir=baseDir+'/TransferFiles'
    working_dir=intellijProjDir
    tomcatDir=deploy_dir+"/tomcat"

    addToTomcatFile('/project1/target/project1*.war', '/tomcat/project1.war')
    addToTomcatFile('/project2/target/project2*.war', '/tomcat/project2.war')
    addToTomcatFile('/projectX/target/projectX*.war', '/tomcat/projectX.war')

    for infoObj in tomcatFiles:
        addToContent(infoObj['src'], infoObj['dest'])

    for infoObj in content:
        shutil.copy2(glob.glob(working_dir + infoObj['src']), deploy_dir + infoObj['dest'])
        print('Copied ' + infoObj['dest'])

2 个答案:

答案 0 :(得分:1)

shutil.copy2的{​​{1}}参数需要一个字符串(或缓冲区),而不是一个列表。由于您确定只会有一场比赛,因此请获取src返回的第一项,即glob.glob

答案 1 :(得分:0)

赞:

Sub String_Acct_Numbers()

Dim AccountNumber As String
Dim StartRow As Integer
Dim NumRows As Integer

NumRows = Range("A1", Range("A2").End(xlDown)).Rows.Count

For StartRow = 2 To NumRows

AccountNumber = Cells(StartRow, 1).Value & " " & Cells(StartRow + 1, 
1).Value

Next StartRow

Range("C1") = AccountNumber


End Sub