Ubuntu一个文件夹同步过滤器
-
25-09-2019 - |
题
我正在尝试将Ubuntu一个文件同步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动作:)
任何帮助,将不胜感激。
谢谢。
安迪
解决方案
ubuntuone应该真正有一个.ignore文件或同样的文件。...我想忽略很多东西... .pyc,.blend1只是为了开始。
更新:它有 - 查看:
https://answers.launchpad.net/ubuntuone-client/+Question/114731
过时的答案:
回答... 。*。是在旧模式的开头,因此要替换:
“(u1)?冲突(。[0-9]+)?)$”)
和:
“(u1)?冲突(。[0-9]+)?| ISO)$”)
应该这样做。
在python中互相列出串只是串联它们,所以这都是一个字符串。
其他提示
这 Python的正则文档 将是寻找这个地方的地方。
对于ISO,您可能只能添加一个 "|.*\.iso$"
到最后一行。
匹配ISO文件的正则是
".*\\.iso$"
与“ .iso”结尾的任何东西都匹配
我 思考 您可以将其添加为re.com的另一行,但是一个比我能确认的更好的人。
“你有问题,所以你想'嘿,我只使用正则'。现在你有两个问题”
这是一个 很多 更容易解决您的问题:
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
不隶属于 StackOverflow