Попытка выполнить некоторые основные функции оболочки оболочки с очень большим вводом в python:
svnadmin load /var/repo < r0-100.dump
Я нашел самый простой способ заставить это работать даже с большими (2-5 ГБ) файлами:
subprocess.check_output('svnadmin load %s < %s' % (repo, fname), shell=True)
Мне нравится этот метод, потому что он прост, и вы можете сделать стандартное перенаправление оболочки.
Я попытался пройти маршрут Popen для запуска перенаправления:
cmd = 'svnadmin load %s' % repo
p = Popen(cmd, stdin=PIPE, stdout=PIPE, shell=True)
with open(fname) as inline:
for line in inline:
p.communicate(input=line)
Но это не помоглобольшие файлы.Использование:
p.stdin.write()
Также сломано с очень большими файлами.