我有python版本3.7.1。

我想将源目录中扩展名为.835的文件同步到目标目录。为什么此代码会覆盖所有文件?

import dirsync
dirsync.sync(source,destination,'sync',verbose=True,only='.*\.835$')

我也尝试过--include选项和模式,如下所示:
import dirsync
pattern = r'.*\.835$'
dirsync.sync(source,destination,'sync',verbose=True,include=pattern)

我该如何解决这个问题?

最佳答案

尝试在正则表达式后添加逗号:

import dirsync
pattern = r'.*\.835$',
dirsync.sync(source, destination, 'sync', verbose=True, include=pattern)

或者:
import dirsync
dirsync.sync(source, destination, 'sync', verbose=True, include=(r'^.*\.wav$',))

如果仍然有问题,则dirsync示例脚本应为您指明正确的方向:https://bitbucket.org/tkhyn/dirsync/src/default/tests/regexfilters.py

我还要确保您知道各种选择的作用。根据使用情况,“仅”可能比“包含”更有用

您可以在这里找到文档:https://bitbucket.org/tkhyn/dirsync/src/default/

--only,-o模式

要包括的正则表达式模式(彼此排除)

--exclude,-e模式

正则表达式模式以排除

--include,-i模式

要包括的正则表达式模式(优先于排除)

09-27 08:33