我正在 Django/Python 中使用 rsync --list-only 命令:
subprocess.Popen(['rsync', '--list-only', source],
stdout=subprocess.PIPE,
env={'RSYNC_PASSWORD': password}).communicate()[0]
它返回的结果是这样的:
drwxrwxrwx 4096 2012/11/07 09:56:23 upload
我不需要所有文件信息。我只想像这样显示文件名:
upload
我怎样才能做到这一点?谢谢
最佳答案
rsync 没有选项来缩写输出,您需要使用正则表达式(或 split()
)
import re
retval = subprocess.Popen(['rsync', '--list-only', source],
stdout=subprocess.PIPE,
env={'RSYNC_PASSWORD': password}).communicate()[0]
retval = re.sub('^.+?\d+:\d+:\d+\s+(\S+.+)', '\g<1>', retval)
或者(只要文件名没有空格)...
retval = subprocess.Popen(['rsync', '--list-only', source],
stdout=subprocess.PIPE,
env={'RSYNC_PASSWORD': password}).communicate()[0]
retval = retval.split(' ')[-1]
关于python - 从 python 中的 rsync 列表命令中删除文件权限、创建日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451013/