Я пытаюсь использовать pyPdf для извлечения и печати страниц из многостраничного PDF. Проблема в том, что текст не извлекается с некоторых страниц. Я поместил здесь пример файла:
http://www.4shared.com/document/kmJF67E4/forms.html
Если вы запустите следующее, первые 81 страница не вернут текст, а последние 11 правильно извлечь. Когда у меня есть простая программа, которая вычисляет квадраты от 1 до N, реализованная с использованием цикла for и while, поведение отличается. (Я не ...
Я заметил любопытную вещь, работая в R. Когда у меня есть простая программа, которая вычисляет квадраты от 1 до N, реализованная с использованием цикла for и while, поведение отличается. (Я не забочусь о векторизации в данном случае или о применении функций).
fn1 <- function (N)
{
for(i in 1:N) {
y <- i*i
}
}
И
fn2 <- function (N)
{
i=1
while(i <= N) {
y <- i*i
i <- i + 1
}
}
Результаты следующие:
system.time(fn1(60000))
user system elapsed
2.500 0.012 2.493
There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In i * i : NAs produced by integer overflow
.
.
.
system.time(fn2(60000))
user system elapsed
0.138 0.000 0.137
Теперь мы знаем, что цикл for работает быстрее, я предполагаю, что это из-за предварительного выделения и оптимизации. . Но почему он переполняется?
ОБНОВЛЕНИЕ: Итак, теперь попробуем другой способ с векторами:
fn3 <- function (N)
{
i <- 1:N
y <- i*i
}
system.time(fn3(60000))
user system elapsed
0.008 0.000 0.009
Warning message:
In i * i : NAs produced by integer overflow
Так что, возможно, это проблема с памятью? Я работаю в OS X с 4 Гб памяти и всеми настройками по умолчанию в R. Это происходит в 32- и 64-битных версиях (за исключением того, что времена быстрее).
Alex