Мерзавец с cvs быстрее, чем cvs один?

Я думаю, что следующий код поможет вам:

num_reads = 7
with open('data.txt') as read_file:
    with open('new_data.txt', 'w') as write_file:

        while (True):
            lines = []
            try:       # You should expect errors if the number of lines in the file are not a multiplication of num_reads
                for i in range(num_reads):     
                    lines.append(next(read_file))  # when the file finishes an exception occurs here

                #do sutff with the lines (exactly num_reads number of lines)
                processed = " ".join(list(map(lambda x: x.replace("\n", ''), lines)))
                write_file.write(processed + '\n')

            except StopIteration:     # here we process the (possibly) insufficent last lines
                #do stuff with the lines (less that  num_reads)
                processed = " ".join(list(map(lambda x: x.replace("\n", ''), lines)))
                write_file.write(processed + '\n')
                break

Когда достигается конец файла, возникает ошибка StopIteration, которая перехватывается except, где вы можете обработать возможные недостающие строки данных. захвачены и вырваны из цикла while. В приведенном выше фрагменте кода я проделал одну и ту же операцию как с полным (num_reads = 7) захватом, так и с частичным. Обрабатывающая часть просто присоединяет строки и удаляет символы новой строки. Когда data.txt выглядит так:

line1
line2
line3
line4
line5
line6
line7
line8
line9
line10

new_data.txt будет выглядеть так:

line1 line2 line3 line4 line5 line6 line7
line8 line9 line10
8
задан Craig P. Motlin 26 November 2008 в 15:56
поделиться

2 ответа

Я использую Мерзавца в качестве клиента Подверсии на крупном проекте (на порядке 10k файлов). Мерзавец быстр, действительно быстро. Это настолько быстро, что я только сохраняю один рабочий клон и переключатель между ответвлениями функции в том же самом клоне. Как Вы, когда я использовал Подверсию, я буду иметь два или три подобного контроля и регулярно переключался бы между ними, поскольку у меня было несколько происходящих вещей одновременно. Это добралось, чтобы иногда довольно сбивать с толку. С функциями Мерзавца как легкие ответвления притон, и "мерзавец добавляют-p", я нахожу, что мне больше не нужны несколько контроля. Я могу сделать все в одном каталоге и не волноваться так же о потере изменений, которые я или забыл об или случайно перезаписал.

Я не использовал Мерзавца с CVS, но если его интеграция - что-нибудь как мерзавец-svn затем, это не будет никакой проблемой.

8
ответ дан 5 December 2019 в 09:26
поделиться

Мы делаем что-то подобное на работе. Мы в основном используем master ответвление в мерзавце как единственная, обновленная версия CVS кода; мы не делаем никакой разработки там, просто обновлений CVS. Затем все наши проекты разработки происходят на ответвлениях функции, которые мы повторно основываем. Когда мы делаем обновления CVS на master перейдите мы фиксируем те изменения в master и затем повторно основывайте наши другие ответвления разработки против master.

Это не идеально - это делает совместное использование ответвлений с другими людьми трудным. Но, мы можем управлять несколькими проектами разработки сразу и сделать ответвления, слияния и diffs против них легко. И, мы только взаимодействуем с CVS на том master ответвление, по мере необходимости.

10
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: