我的ant脚本在D:\ test \文件夹中创建一个包含文件夹日期和时间enf的文件夹。
如何将d:\ test \ apps_20150709_updates_ 2015_08_03_13-54 \ apps \ dist \ packages \文件夹复制到D:\ test \ packages。日期和时间始终在变化( 2015_08_03_13-54 )。我尝试在这个脚本中使用glob命令你可以帮帮我吗?
import os, shutil, glob
SOURCE = glob.glob("D:\\test\\apps_20150709_updates_*\\apps\\dist\\packages\\")
DEST = "D:\\test\\packages\\"
shutil.copytree(SOURCE, DEST)
print os.listdir(DEST)
***D:\test>python copy_files.py
Traceback (most recent call last):
File "copy_files.py", line 6, in <module>
shutil.copytree(SOURCE, DEST)
File "C:\Python27\lib\shutil.py", line 171, in copytree
names = os.listdir(src)
TypeError: coercing to Unicode: need string or buffer, list found
D:\test>***
答案 0 :(得分:0)
glob.glob
会在未找到匹配项的情况下返回匹配路径的列表或空列表。
shutil.copytree
在第一个参数(“需要字符串或缓冲区”)中需要字符串,而您提供了列表(“找到列表”)。
答案 1 :(得分:0)
正如另一个答案所指出的那样,你将一个列表传递给shutil.copytree()
,它希望每个参数都是一个字符串。要解决此问题,请尝试以下操作,将所有匹配的源文件夹复制到目标文件夹:
import os, shutil, glob
SOURCE = glob.glob("D:\\test\\apps_20150709_updates_*\\apps\\dist\\packages\\")
DEST = "D:\\test\\packages\\"
for folder in SOURCE:
shutil.copytree(folder, DEST)
print os.listdir(DEST)