4

.isoのようなものを含まないようにPythonスクリプトを同期するUbuntuOneファイルを変更しようとしています。

私はこのファイルを見つけるところまで持っています:/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の正規表現のドキュメントはそれを調べる場所になります。

"|.*\.iso$"isosの場合、おそらく最後の行にaを追加するだけです。

于 2010-06-09T12:13:59.520 に答える
2

UbuntuOneには、実際には.ignoreファイルまたは同等のファイルが必要です。多くのものを無視したいのですが... .pyc、.blend1を開​​始するだけです。

更新:それはあります-見てください:

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

廃止された回答:

答える... 。*\\。は古いパターンの先頭にあるため、次を置き換えます。

"(u1)?conflict(\。[0-9] +)?)$")

と:

"(u1)?conflict(\。[0-9] +)?| iso)$")

それをする必要があります。

Pythonで文字列を並べて表示することは、文字列を連結するだけなので、すべて1つの文字列になります。

于 2010-06-15T18:20:46.683 に答える
1

ISOファイルと一致する正規表現は次のようになります

".*\\.iso$"

これは「.iso」で終わるものと一致します

これをre.compile呼び出しの別の行として追加できると思いますが、私よりもpythonをよく知っている人ならそれを確認できます。

于 2010-06-09T12:10:39.140 に答える
0

「問題があるので、「ねえ、正規表現を使用します」と思います。今、2つの問題があります。」

これがあなたの問題に対するはるかに簡単な解決策です:

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

于 2010-06-15T19:26:49.540 に答える