Ubuntu One Folder Sync Filter

Я пытаюсь изменить сценарии Python для синхронизации Ubuntu One File, чтобы они не включали такие вещи, как.iso.

Я дошел до поиска этого файла: /usr/share/pyshared/ubuntuone/u1sync/constants.py

Внутри этот кусок кода:

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]+)?)$")

Как я могу отредактировать этот последний раздел (регулярное выражение?) И заставить его игнорировать файлы.iso??? Я вполне уверен, что это место, чтобы положить это!

Уверен, это стандартное действие Python:)

Любая помощь будет оценена.

Спасибо

Энди

4 ответа

Решение

В UbuntuOne действительно должен быть файл.ignore или что-то в этом роде... Я хочу игнорировать множество вещей... .pyc, .blend1 только для начала.

ОБНОВЛЕНИЕ: это имеет - взгляните на:

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

НАБЛЮДАЙТЕ ОТВЕТ:

Отвечать... .*\\. находится в начале старого шаблона, поэтому заменив:

"(U1)? Конфликт (\.[0-9]+)?)$")

с:

"(U1) конфликт (\ [0-9] +.) |? Изо) $")

Должен сделать это.

Перечисление строк друг за другом в Python просто объединяет их, так что это все одна строка.

Документация по регулярным выражениям для python будет тем местом, где это можно найти.

Для isos вы могли бы просто добавить "|.*\.iso$" до последней строки.

Регулярное выражение для сопоставления ISO-файлов будет

".*\\.iso$"

Который соответствует чему-либо, заканчивающемуся на ".iso"

Я думаю, вы можете добавить это в качестве еще одной строки в вызове re.compile, но тот, кто знает Python лучше меня, может это подтвердить.

"У вас есть проблема, поэтому вы думаете:" Эй, я просто использую регулярное выражение ". Теперь у вас есть две проблемы"

Вот гораздо более простое решение вашей проблемы:

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

А вот и дополнительный бонус - это займет все 3 минуты? расширить это, чтобы получить расширения из файла игнорирования.

НТН

Другие вопросы по тегам