4

我正在尝试将 Ubuntu One File 同步 python 脚本修改为不包括 .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

4 回答 4

3

python的正则表达式文档将是查找它的地方。

对于isos,您可能只需"|.*\.iso$"在最后一行添加a。

于 2010-06-09T12:13:59.520 回答
2

UbuntuOne 真的应该有一个 .ignore 文件或同样的......我想忽略很多东西...... .pyc,.blend1 只是为了开始。

更新:它有 - 看看:

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

过时的答案:

回答... 。*\\。是在旧模式的开头,所以替换:

"(u1)?冲突(\.[0-9]+)?)$")

和:

"(u1)?冲突(\.[0-9]+)?|iso)$")

应该这样做。

在 Python 中逐个列出字符串只是将它们连接起来,因此它们都是一个字符串。

于 2010-06-15T18:20:46.683 回答
1

匹配 iso 文件的正则表达式是

".*\\.iso$"

与以“.iso”结尾的任何内容匹配

认为您可以在 re.compile 调用中将其添加为另一行,但比我更了解 python 的人可以确认这一点。

于 2010-06-09T12:10:39.140 回答
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 分钟?扩展它以从忽略文件中获取扩展名。

高温高压

于 2010-06-15T19:26:49.540 回答