我有一个文件夹(带有其他子文件夹),我只想将 .js 文件复制到另一个现有文件夹(这也有与第一个文件夹结构相同的子文件夹,除了这个只有文件夹,所以没有文件)
我怎么能用python做到这一点?我尝试了 shutil.copytree 但它失败了,因为一些文件夹已经存在。
我有一个文件夹(带有其他子文件夹),我只想将 .js 文件复制到另一个现有文件夹(这也有与第一个文件夹结构相同的子文件夹,除了这个只有文件夹,所以没有文件)
我怎么能用python做到这一点?我尝试了 shutil.copytree 但它失败了,因为一些文件夹已经存在。
使用os.path.splitext
或glob.iglob
glob.iglob(pathname)
返回一个迭代器,它产生与 glob() 相同的值,而不是同时存储它们。
我提出了一个解决方案os.path.splitext
,一起走os.walk
。我利用os.path.relpath
在重复树中查找相对路径。
source_dir
是你的源最上面的源文件夹,dest_dir
你最上面的目标文件夹。
import os, shutil, glob
source_dir = "F:\CS\PyA"
dest_dir = "F:\CS\PyB"
for root, dirnames, filenames in os.walk(source_dir):
for file in filenames:
(shortname, extension) = os.path.splitext(file)
if extension == ".txt" :
shutil.copy2(os.path.join(root,file), os.path.join(dest_dir,
os.path.relpath(os.path.join(root,file),source_dir)))
from glob import glob
from shutil import copy
import os
def copyJS(src, dst):
listing = glob(src + '/*')
for f in listing:
if os.path.isdir(f):
lastToken = f.split('/')[-1]
copyJS(src+'/' + lastToken, dst+ '/' + lastToken)
elif f[-3:] == '.js':
copy(f, dst)