Переименование файлов

как найти книгу или статью? не поделится ли кто-нибудь программой? если у вас такой вопрос - значит, вам сюда!
Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Переименование файлов

Сообщение Yojik21 » Вт июн 09, 2009 11:59 pm

Наконец, созрел, чтобы выложить скрипты для переименования файлов (автоматического, корректировки и ручного).
Давно хотел это сделать, чтоб заниматься этим не самому :D , но все хотел привести в порядок, сделать универсальное приложение, доступное для каждого неискушенного пользователя (юзера-чайника).
Цели своей не достиг, потому что файлы разных лет, издательств и качества - очень разные и скрипт капризный даже на одном моем компе, а на компах с разной производительностью и вспомогательными программами (Foxit, Acrobat, FineReader) разных версий будет работать очень по разному.
Поэтому скрипты прийдется постоянно подстраивать. Тем не менее, если хорошо разобраться - многие задачи выполняются гораздо быстрее. Переименовать 3000 файлов за 2 дня без этого скрипта было бы вручную если не невозможно, то по крайней мере, смертельно утомительно. Если включить фантазию, можно решить любую гораздо более широкие задачи, в том числе по пакетному распознаванию и т.п.
Думаю, на форуме есть несколько отчаянных пользователей, которым интересно будет подхватить идею. Думаю, порядка на компе хочется всем.

Код: Выделить всё

http://files.mail.ru/0FFSWI
Для тех кого не пугает перспектива разбираться в скрипте, нужно установить AutoIt, FoxitReader (даже если у вас другой pdf-просмотрщик) и поэксперементировать со скриптом, используя файлы помощи AutoIt и мои комментарии внутри скриптов.
Комментарии писал для себя, а не для публики, поэтому с радостью отвечу на возникающие вопросы.

Аватара пользователя
rombach
Сообщения: 1865
Зарегистрирован: Пт май 14, 2004 6:20 pm

Re: Переименование файлов

Сообщение rombach » Ср июн 10, 2009 11:38 am

Спасибо.
Хотелось бы, конечно, несколько более подробно описать порядок действий при работе. Кроме тех файлов, что в архиве, больше ничего для работы не нужно? После установки всего и запуска скрипта максимум что происходит, это открывается Foxit, и появляется окошко, что "обрабатывается файл 1 из ...", которое не меняется ни на что другое и больше ничего не происходит. Видимо, надо включить фантазию, но не могу понять, в каком направлении...
Нельзя ли составить инструкцию по пунктам:
1. установить то-то туда-то.
2. открыть такой-то файл
3. для того, чтобы ... сделать следующие действия... и т.д.
А то я подозреваю, что информации недостаточно. У меня, например, FineReader 8.0 не установлен. Без него работать будет? Или что без него не будет работать? В скриптах указан адрес C:\Work\AutoNamer.ini. У меня нет папки C:\Work\, она будет создана сама или это моя забота? И т.п. вопросы человека первый раз увидевшего программу autoit.
Хотя идею подхватить интересно, в число отчаянных пользователей я не вхожу, и мне было бы интересно оценить перспективы быстрого освоения этой процедуры.

Аватара пользователя
antabu
Сообщения: 5990
Зарегистрирован: Пн май 25, 2009 7:00 pm

Re: Переименование файлов

Сообщение antabu » Ср июн 10, 2009 1:21 pm

Вообще не понимаю проблемы. Есть Total Commander, групповое переименование, плагины к нему, например translit, подправить после транслита можно вручную, маски замены, всё подробно расписано в хелпе, есть даже плагины для перенесения mp3 тегов в названия файлов.
"Я не видел людей страшней, чем толпа цвета хаки"

Аватара пользователя
rombach
Сообщения: 1865
Зарегистрирован: Пт май 14, 2004 6:20 pm

Re: Переименование файлов

Сообщение rombach » Ср июн 10, 2009 2:06 pm

Может, чтобы лучше понять проблему, вам нужно попробовать переименовать папочку с файлами, например ту что здесь прикреплена. Используйте translit, плагины, маски и прочее. И поделитесь потом с нами результатами. А то мы мучаемся давно, не зная, как лучше и проще сделать.

Marxist

Re: Переименование файлов

Сообщение Marxist » Ср июн 10, 2009 2:45 pm

В метаинфо у этих файлов сидит дои. В чём проблема? Алгоритм должен быть следующим:
1. Читаем метаинфо (системная фича)
2. Составляем дои
3. Обращаемся по этому дои
4. Парсим текст веб-страницы (самый тупой вариант)
5. Переименовываем.

Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Re: Переименование файлов

Сообщение Yojik21 » Ср июн 10, 2009 5:00 pm

to antabu: Все просто, если мы хотим переименовать по какой-то маске, но нам надо извлечь из каждого файла номер страницы. Их в свойствах файлов нет.
to Marxist: Идею не пробовал - может и заслуживает внимания.
to rombach и другим:

В архиве представлены
autoit-v3-setup - необходимая программа для чтения скриптов
SciTE4AutoIt3 - необязательная, но удобная оболочка для редактирования скриптов (хотя можно и в блокноте)
FoxitReader - необходим для работы именно представленных скриптов (скрипты писались под него т.к. он небольшой, портабельный, быстрее acrobat7, хотя иногда сбоит при открытии некоторых файлов последних версий Pdf. В принципе скрипты могут писаться под любые приложения)

3 скрипта:
В качестве рабочей папки для всех скриптов можно использовать любую папку, имя пути однако должно состоять только из английских букв и цифр (От греха подальше у меня C:\Work)
ManualNamer10.7_FS - самый понятный в работе, но наименее приятный - после запуска запрашивает рабочую папку, просто по очереди открывает pdf файлы, показывает первую страницу и просит включить ваши глаза и ввести номер страниц или что-то еще в диалоговое окно самостоятельно.

Autonamer10.7_FS - Делает в начале делает запрос "Нажмите ДА, если номера страниц распознаны, НЕТ - если не распознаны, но их нужно распознать скриншотридером"
Нет нажимаете если файлы нераспознаны или распознаны коряво и вы чувствуете, что их возможно нормально перераспознать. В этом случае должен стоять Finereader8 по тому ажресу, что прописан с скипте вначале. Скриптом используется утилита ScreenshotReader.exe.

Код: Выделить всё

Const $ScrShotRead_dir = "C:\Program Files\ABBYY FineReader 8.0 Professional Edition\ScreenshotReader.exe"
Затем он анализирует все вложения, может открывать и закрывать Foxit - если папок много - это может занять от одной до несколькиз минут (Надстройка медленная и я не гений - может что-то написано нерационально). При этом в прогресс-окне внизу-слева пишется сколько папок из скольки обработано.
При открытии первого файла скрипт предлагает:
"Кликните в левый верхний угол области обработки", а затем "Кликните в правый нижний угол области обработки."
После закрытия каждого из этих окон нужно кликнуть по области страницы, обозначающие крайние точки для области выделения (там где номера страниц)
После этого он последовательно открывает все файлы, вложенные в рабочую папку, копирует или заново перераспознает указанную область, все символы нецифры заменяет на ~ и записывает в файл AutoNamer.ini. Если файл 20 секунд ( 20000 миллисекунд) не открылся

Код: Выделить всё

		If WinExists($PDF_programm, "Foxit Reader, Best") = 1 or TimerDiff($begin)>20000 or MouseGetCursor()=15 Then ; Если ошибка при открытии pdf
скрипт убивает процесс его открытия и переименовует его в Corrupt_XXXXXXX. (Хотя иногда он был не прав. Из-за загруженности памяти машина просто не успевала)
Посути во время переименования за компом работать нельзя, т.к. скрипт эмулирует движение мыши и нажатие клавиш, поэтому можете включить предварительно IDM, музычку и ложиться спать. В случае необходимости можно запаузить скрипт пробелом или выключить Esc. После окончания его работы значек AutoIt (Треугольник в Сером круге) исчезает из трея.
После выключения скрипта вы можете продолжить начатое позже, однако незабудьте убрать из папки уже обработанное, чтоб он не делал все это второй раз.
Когда все файлы обработаны, я просматриваю в блокноте ini, удаляю лишние и сомнительные цифры, затем автоматически удаляю все ~.
Если вам повезет дойти до этой точки, я продолжу. :roll:
P.S. Повторюсь, что скрипт капризный. Maxis 2 недели назад присылал мне файлы. До сих пор не могу понять почему скрипт их не открывает.
Пишет "Все закончено!", хотя ничего и не начиналось. Сейчас попробую предложенную папку.

Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Re: Переименование файлов

Сообщение Yojik21 » Ср июн 10, 2009 5:47 pm

to rombach:
При эксперименте на предложеной папке все работает как должно.

Поместил папку в C:\Work
Запустил скрипт Autonamer10.7_FS
Нажал Да.

Первым пытается открыться
1988&_sk=999709998&view=c&wchp=dGLbVlb-zSkzk&_acct=C00000865(10).pdf
Но так как он какой-то поврежденный, Foxit его не открывает, а пропускает через 20 сек безуспешных попыток.
(В ручном режиме я его потом смог открыть Acrobat8Professional и 4 страница на эскизах была затемнена, после пересохранения файл был восстановлен и смог быстро открываться даже Foxit ).
Следующие файлы пошли как по маслу.
Конца папки дожидаться не стал, нажал Esc

Могло еще ничего не происходить, если Вы после запуска сбили фокус и скрипт ожидал его возвращения на Foxit.
И еще советую включать ProcessExplorer для слежения в трее за загрузкой процессора.

Аватара пользователя
amik
Сообщения: 23104
Зарегистрирован: Вс мар 05, 2006 9:32 pm

Re: Переименование файлов

Сообщение amik » Ср июн 10, 2009 5:52 pm

Уважаемые коллеги, пока вы не пришли к общему знаменателю, тема побудет в другом разделе :dontknow:
Бог на стороне не больших батальонов, а тех, кто лучше стреляет (приписывается Вольтеру)

Аватара пользователя
Ivan110
Сообщения: 4640
Зарегистрирован: Чт мар 22, 2007 12:26 am

Re: Переименование файлов

Сообщение Ivan110 » Ср июн 10, 2009 9:03 pm

Может проще загрузить оглавление номеров журнала в виде HTML, там есть и номера страниц и название файлов.
И написать скрипт обработки HTML.

Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Re: Переименование файлов

Сообщение Yojik21 » Ср июн 10, 2009 9:44 pm

А если статьи в виде
1988&_sk=999709998&view=c&wchp=dGLbVlb-zSkzk&_acct=C00000865(10).pdf
или sdarticle(1)
или fultext(1) ???
Может это и проще было бы сразу реализовать при закачке, но этого сделано не было.
Не понимаю как можно связать имя fultext c информацией в html.

Marxist говорил, что в метаинфо pdf файла можно узнать doi. Кто объяснит, как это можно сделать?
Это действительно могло бы связать файл с html.

Аватара пользователя
Ivan110
Сообщения: 4640
Зарегистрирован: Чт мар 22, 2007 12:26 am

Re: Переименование файлов

Сообщение Ivan110 » Ср июн 10, 2009 9:48 pm

При закачке конечно удобнее...

Хотя я встречал и в таком виде:
1 статья: 1.pdf
2: 11.pdf
3: 111.pdf
.......


Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Re: Переименование файлов

Сообщение Yojik21 » Ср июн 10, 2009 10:59 pm

Может я, конечно туплю, но как вызвать это окно? Я такого еще нигде не видел.

Marxist

Re: Переименование файлов

Сообщение Marxist » Ср июн 10, 2009 11:12 pm

Стандартное окно свойств файла. Есть во всех системах (хамелеончик кагбэ намекаэ :wink: ). Как эти свойства выдирать -- вопрос не ко мне, я не программист.

Аватара пользователя
Ivan110
Сообщения: 4640
Зарегистрирован: Чт мар 22, 2007 12:26 am

Re: Переименование файлов

Сообщение Ivan110 » Чт июн 11, 2009 12:12 am

Это то же самое что в Акробате: File->Document properties->summary
Только в поле Title может быть что угодно, а не обязательно DOI (как у
ScienceDirect). Я обычно туда заношу название журнала, год, том, номер
и страницу. Есть программы которые могут работать с этими полями не
открывая сам файл...

Marxist

Re: Переименование файлов

Сообщение Marxist » Чт июн 11, 2009 12:16 am

Ну как бы пример списка файлов с проблемой был приведён для саенсдиректа

Аватара пользователя
Ivan110
Сообщения: 4640
Зарегистрирован: Чт мар 22, 2007 12:26 am

Re: Переименование файлов

Сообщение Ivan110 » Чт июн 11, 2009 12:26 am

Ну это только для новых журналов, для архива там по-другому
(пример Tetrahedron, Vol 4, pp.393-402):
Snap4.png

Marxist

Re: Переименование файлов

Сообщение Marxist » Чт июн 11, 2009 12:37 am

А из этой штуки дои тоже генерится. Можете посмотреть, какой он у этой статьи и как его собрать из этих данных :)

Аватара пользователя
Warfarin
Сообщения: 1069
Зарегистрирован: Пт июн 29, 2007 1:40 am

Re: Переименование файлов

Сообщение Warfarin » Чт июн 11, 2009 1:07 am

Парсинг HTML-оглавлений действительно очень удобен. А главное - однозначен по сравнению с распознаванием (конечно лишь в том случае, если имена файлов несут смысловую нагрузку, а не sdarticle_77.pdf)
Я делал не так давно на PHP парсеры оглавлений для WILEY и ACS - вытаскивают номера страницы, тома, выпуска, год, DOI и даже авторов. Так что соответствующие ini для Yojik21's renamer скоро будут выложены - для их генерации буквально несколько строчек кода надо дописать :)

Yojik21
Сообщения: 184
Зарегистрирован: Пн авг 18, 2008 7:23 pm
Контактная информация:

Re: Переименование файлов

Сообщение Yojik21 » Чт июн 11, 2009 10:05 am

Спасибо за дискуссию. Если файлы действительно в себе несут какое-то свойство (DOI или другой код), которое можно извлечь и оно прописано в html содержания это можно реализовать.
Я не пошел по этому пути, поскольку он хорош только для строго нормированных файлов, например при массовой закачке с одного издательства.
Я же просто навожу порядок на компе и мне встречаются файлы самого разного происхождения. Во многих из них поля метаинформации вообще не заполнены, другие заполнены разноплановой информацией, страницы же на листах есть всегда и практически на одном месте во всем томе, поэтому мой метод все-таки чуть более универсальный.
Ему не хватает быстроты (эффективности), надежности и самостоятельности.

to Warfarin
Можно и не привязываться к моему ренеймеру. Уже когда я все написал, кто-то выложил file.bat для переименования.

Код: Выделить всё

cd Issue_01														
ren "1987&_sk=999719998&view=c&wchp=dGLbVlz-zSkWA&_acct=C000008658&_version=1&_userid=1001915&md5=32567e2570d85d1409257fa1d266ba1a&ie=f.pdf" 59-60.pdf
ren "1987&_sk=999719998&view=c&wchp=dGLbVlz-zSkWA&_acct=C000008658&_version=1&_userid=1001915&md5=7372f75d160c5e742df0991c94d65609&ie=f.pdf" 115-116.pdf
ren "1987&_sk=999719998&view=c&wchp=dGLbVlz-zSkWA&_acct=C000008658&_version=1&_userid=1001915&md5=006cddb59546232202b83bd38b3af76d&ie=f.pdf" 91-92.pdf
cd..
cd Issue_02
ren "1987&_sk=999719997&view=c&wchp=dGLbVzz-zSkWb&_acct=C000008658&_version=1&_userid=1001915&md5=55e162fc58d7378d56a6e4dc2b9273e9&ie=f.pdf" 239-240.pdf
ren "1987&_sk=999719997&view=c&wchp=dGLbVzz-zSkWb&_acct=C000008658&_version=1&_userid=1001915&md5=27104e1ccd4de7449549617680fbb9a1&ie=f.pdf" 163-164.pdf
ren "1987&_sk=999719997&view=c&wchp=dGLbVzz-zSkWb&_acct=C000008658&_version=1&_userid=1001915&md5=54b4656067f01ed9cc9d1d37f7189214&ie=f.pdf" 165-166.pdf
Я этого не знал. Понять принцип несложно, почти тоже самое
В отличие от моих ини, bat-файл выполняется самой системой, поэтому не нуждается в Autorename.exe
Так-как я уже получил готовый продукт, ничего переделывать не стал (лень), а Вы могли бы написать те же несколько строчек, только для другого синтаксиса и делать просто bat-файлы.
Они теоретически и работать будут быстрее (но практически разница в 1-3 секунды для переименования 10000 файлов особой роли не играет)
Ps cd.. означает подняться по дереву на уровень вверх

Ответить

Вернуться в «обмен книгами, статьями, программами»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя