【发布时间】:2019-04-19 20:53:18
【问题描述】:
我正在尝试使用多个源位置和通配符作为文件名的一部分将文件从一个文件夹复制到另一个文件夹,但由于某种原因,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'])
【问题讨论】:
-
请阅读minimal reproducible example。显示此问题的最少代码实际上是一行:
shutil.copy2(glob.glob('foo*'), 'bar')。
标签: python python-3.x file wildcard