2014-06-20 1 views
0

shutil.copytree을 호출 할 때 내 자신의 copy2 기능을 사용하고 싶습니다. 나는 새로운 dst (copy and rename)를 만들기 위해 dst에 regex를 사용할 것이다. copy2의 함수 헤더가 shutil.copy2(src, dst, *, follow_symlinks=True)으로 표시됩니다. 나는 다음과 같은 만들 것 인 경우 :before shutil copy2

def my_copy2(???): 
    return copy2(src, newdst...) 

내 함수 헤더는 어떤 모습해야하고, 무엇을 내가 함께 copy2를 호출? 비어있는 *과 symlink 인수에 무슨 일이 일어나는 지 나는 불확실합니다.

이 작동하지만, COPY2로하지 동일한 기능 서명 :

#!/usr/bin/python 

import shutil 

def copy_and_rename(src,dst) : 
    return shutil.copy2(src, dst.replace("pdf","zzz")) 

SRC_DIR="srcjunk" 
DEST_DIR="destjunk" 
shutil.copytree(SRC_DIR, DEST_DIR, copy_function=copy_and_rename) 

답변

0

당신은 함수 내에서 모듈을 가져올 수 있습니다 또는 스크립트에 그것을 할 수 있습니다. documentation*이 무엇인지 설명하지 않습니다. 나는 그것을 생략 할 것이다.

from shutil import copy2 
def my_copy2(src, newdst, ...) 
    return copy2(src, newdst, ...) 

또는 내부 가져 오기와

(또한 당신은 import shutil을 할 수있는 다음 shutil.copy2 함께 가져) : 당신은 copy2 실행 할 수 있다고 함수에 충분한 매개 변수를 제공해야합니다

def my_copy2(src, newdst, ...) 
    from shutil import copy2 
    return copy2(src, newdst, ...) 

. Abut은 regex를 사용하여 문자열을 사용하기 전에 문자열을 준비하거나 접미어를 추가하거나 저장할 경로를 추가한다는 것을 의미합니다. 이것은 귀하의 기능 또는 외부에서 수행 할 수 있습니다.

+0

프로그램에서 def my_copy2 (src, newdst)와 함께 오류가 발생하지 않았습니다. "..."란 무엇입니까? 그리고 어쨌든 빈 별표 란 무엇입니까? "..."로 잘못된 구문을 받았습니다. – Paul

+0

... copy2 또는 정규식 처리에 필요한 다른 인수입니다. 별표에 대해서 나는 의미를 모릅니다 ... – Llopis

+0

"..."로 잘못된 구문을 받았습니다 – Paul