.js 파일 만 다른 기존 폴더에 복사하려는 폴더가 있습니다 (다른 하위 폴더와 함께).이 하위 폴더에는 첫 번째 파일은 폴더 만 포함하므로 파일이 없습니다.)특정 형식의 파일을 파이썬으로 복사하는 방법
파이썬으로 어떻게 할 수 있습니까? shutil.copytree를 시도했지만 일부 폴더가 이미 있기 때문에 실패합니다.
.js 파일 만 다른 기존 폴더에 복사하려는 폴더가 있습니다 (다른 하위 폴더와 함께).이 하위 폴더에는 첫 번째 파일은 폴더 만 포함하므로 파일이 없습니다.)특정 형식의 파일을 파이썬으로 복사하는 방법
파이썬으로 어떻게 할 수 있습니까? shutil.copytree를 시도했지만 일부 폴더가 이미 있기 때문에 실패합니다.
사용 os.path.splitext
또는 glob.iglob
glob.iglob(pathname)
복귀 글롭과 동일한 값을 산출하는 반복자() 없이 동시에 실제로 모든 저장.
os.walk
으로 걷는 os.path.splitext
의 솔루션을 제안합니다. 중복 트리에서 상대 경로를 찾으려면 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)
copy2를 사용하면 각 파일의 모든 메타 데이터를 보존하는 것이 좋습니다. – CppLearner
때로는 더 좋으며 때로는 필요하지 않습니다. copystat()를 수행하는 것은 zero-resource 명령이 아닙니다. 원래의 포스터는 원할 경우 copy2를 사용하는 것이 좋습니다. –
왜이 용도로 파이썬이 필요합니까? –
당신은 어떤 시스템을 가지고 있습니까? –