2010-06-09 3 views
4

우분투 원 파일 동기화 파이썬 스크립트를 .iso와 같은 것을 제외하고 수정하려고합니다.우분투 원 폴더 동기화 필터

나는 지금까지이 파일을 찾기로 가지고있다 :

import re 

# the name of the directory u1sync uses to keep metadata about a mirror 
METADATA_DIR_NAME = u".ubuntuone-sync" 

# filenames to ignore 
SPECIAL_FILE_RE = re.compile(".*\\.(" 
          "(u1)?partial|part|" 
          "(u1)?conflict(\\.[0-9]+)?)$") 

내가 편집 할 수 있습니다 방법 :

내부 코드의 조각

을 /usr/share/pyshared/ubuntuone/u1sync/constants.py 이 마지막 섹션 (정규식?)을 무시하고 .iso 파일을 무시하게 만드십시오 ??? 나는 이것이 이것을 놓을 장소임이 분명하다!

정말 표준 파이썬 액션입니다. :)

아무 도움이됩니다.

친절하게 감사드립니다.

앤디

답변

2

우분투 원은 .ignore 파일을 가지고 있거나 똑같이 있어야합니다 .... 저는 많은 것들을 무시하고 싶습니다. .pyc, .blend1 시작하기.

업데이트 : - :

https://answers.launchpad.net/ubuntuone-client/+question/114731

OBSOLETE 답변 : 그것은 한에서 살펴

대답하려면 ... * \\..

"? (U1) 충돌 (. \ [0-9] +)) $")

을 가진 :

"(U1 때문에 교체 이전 패턴의 시작 부분에)? conflict (\. [0-9] +)? iso) $ ")

해야 할 일.

파이썬에서 서로 문자열을 연결하는 것은 단지 하나의 문자열이되도록 연결하는 것입니다.

1

ISO 파일이

내 생각 ".iso로"로 끝나는 아무것도 일치

".*\\.iso$" 

당신이 다른 라인으로이를 추가 할 수있을 것입니다 일치하는 정규 표현식 re.compile 호출이지만 파이썬을 잘 아는 사람이라면 내가 확인할 수 있습니다.

+0

"|"문자가 필요합니다 (정규 표현식에서 OR를 의미 함). 그렇지 않으면 작동하지 않습니다. –

0

"당신은 문제가있다, 그래서 당신은 이제 당신은이 문제가 '이봐, 난 그냥 정규식 사용합니다'라고 생각한다."여기 문제에 대한 훨씬 쉽게 솔루션입니다

을 :

def shouldIignore(filename): 
    ext = filename.split('.')[-1] # Get the extension 
    ignorelist = ('.iso', '.pyc', '.blend1', '.bigfile') 
    if ext in ignorelist: 
     return True 
    return False 

추가 보너스가 있습니다. 3 분이 소요됩니다.이것을 확장하여 무시 파일에서 확장자를 가져옵니다.

HTH